Timothy  0.9
Tissue Modelling Framework
 All Data Structures Files Functions Variables Typedefs Macros
stats.c File Reference

contains functions computing and printing simulation statisctical information More...

#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
#include <math.h>
#include <inttypes.h>
#include "global.h"
Include dependency graph for stats.c:

Go to the source code of this file.

Functions

void statisticsDensity ()
 
void statisticsDistance ()
 
void statisticsVelocity ()
 
void statisticsSize ()
 
void statisticsPhases ()
 
void statisticsPrint ()
 

Detailed Description

contains functions computing and printing simulation statisctical information

Definition in file stats.c.

Function Documentation

void statisticsDensity ( )

This function computes and prints out density statistics.

Definition at line 38 of file stats.c.

References cells, statisticsData::densavg, statisticsData::densdev, cellData::density, lnc, statisticsData::maxdens, statisticsData::mindens, MPIrank, nc, and statistics.

39 {
40  int c;
41  double sum = 0.0, mean;
42  double globalMaxDens;
43  double globalMinDens;
44  double deviation;
45 
46  statistics.maxdens = 0;
47  statistics.mindens = 1024;
48 
49  for (c = 0; c < lnc; c++) {
50  sum += cells[c].density;
52  (cells[c].density >
55  (cells[c].density <
57  }
58 
59  MPI_Allreduce(&sum, &mean, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
60  MPI_Allreduce(&statistics.maxdens, &globalMaxDens, 1, MPI_DOUBLE,
61  MPI_MAX, MPI_COMM_WORLD);
62  MPI_Allreduce(&statistics.mindens, &globalMinDens, 1, MPI_DOUBLE,
63  MPI_MIN, MPI_COMM_WORLD);
64  statistics.maxdens = globalMaxDens;
65  statistics.mindens = globalMinDens;
66 
67  mean /= nc;
68  statistics.densavg = mean;
69  sum = 0.0;
70 
71  for (c = 0; c < lnc; c++)
72  sum += (cells[c].density - mean) * (cells[c].density - mean);
73 
74  MPI_Allreduce(&sum, &(statistics.densdev), 1, MPI_DOUBLE, MPI_SUM,
75  MPI_COMM_WORLD);
76 
79 
80  if (MPIrank == 0)
81  printf("%12s%10.4lf%10.4lf%10.4lf%10.4lf\n", "Density ",
82  globalMinDens, globalMaxDens, mean, statistics.densdev);
83 }
double density
Definition: global.h:75
int MPIrank
Definition: global.h:134
#define lnc
Definition: global.h:102
double densavg
Definition: global.h:265
double densdev
Definition: global.h:264
double maxdens
Definition: global.h:262
struct statisticsData statistics
Definition: global.h:268
struct cellData * cells
Definition: global.h:82
#define nc
Definition: global.h:93
double mindens
Definition: global.h:263

Here is the caller graph for this function:

void statisticsDistance ( )

This function computes and prints out distance statistics.

Definition at line 88 of file stats.c.

References statisticsData::mindist, MPIrank, and statistics.

89 {
90  double globalMinDist;
91  double globalMaxDist;
92 
93  MPI_Allreduce(&statistics.mindist, &globalMinDist, 1, MPI_DOUBLE,
94  MPI_MIN, MPI_COMM_WORLD);
95 
96  statistics.mindist = globalMinDist;
97 
98  if (MPIrank == 0)
99  printf("%12s%10.4lf%10s%10s%10s\n", "Distance ", globalMinDist, "-",
100  "-", "-");
101 }
int MPIrank
Definition: global.h:134
double mindist
Definition: global.h:259
struct statisticsData statistics
Definition: global.h:268

Here is the caller graph for this function:

void statisticsPhases ( )

This function computes and prints out phases statistics.

Definition at line 137 of file stats.c.

References cnc, g0nc, g1nc, g2nc, mnc, MPIrank, nc, nnc, and snc.

138 {
139  if (MPIrank == 0) {
140  printf("%12s%12s%12s%12s%12s%12s\n", "Cell phase ", "G0", "G1", "S",
141  "G2", "M");
142  printf("%12s%12" PRId64 "%12" PRId64 "%12" PRId64 "%12" PRId64 "%12"
143  PRId64 "\n", "N. of cells", g0nc, g1nc, snc, g2nc, mnc);
144  printf("\n%16s%12" PRId64 "\n", "Healthy cells ", nc - cnc - nnc);
145  printf("%16s%12" PRId64 "\n", "Cancer cells ", cnc);
146  printf("%16s%12" PRId64 "\n", "Necrotic cells ", nnc);
147  }
148 }
int MPIrank
Definition: global.h:134
#define g1nc
Definition: global.h:95
#define snc
Definition: global.h:96
#define g0nc
Definition: global.h:94
#define nnc
Definition: global.h:100
#define cnc
Definition: global.h:99
#define nc
Definition: global.h:93
#define g2nc
Definition: global.h:97
#define mnc
Definition: global.h:98

Here is the caller graph for this function:

void statisticsPrint ( )

This is a driving function for computing and printing out statistics.

Definition at line 153 of file stats.c.

References MPIrank, statisticsDensity(), statisticsDistance(), statisticsPhases(), and statisticsSize().

154 {
155  if (MPIrank == 0)
156  printf("%12s%10s%10s%10s%10s\n", "", "Min", "Max", "Avg", "Dev");
159  /*statisticsVelocity(); */
160  statisticsSize();
161  if (MPIrank == 0)
162  printf("\n");
164 }
int MPIrank
Definition: global.h:134
void statisticsSize()
Definition: stats.c:120
void statisticsDistance()
Definition: stats.c:88
void statisticsPhases()
Definition: stats.c:137
void statisticsDensity()
Definition: stats.c:38

Here is the call graph for this function:

Here is the caller graph for this function:

void statisticsSize ( )

This function computes and prints out cell size statistics.

Definition at line 120 of file stats.c.

References statisticsData::maxsize, statisticsData::minsize, MPIrank, and statistics.

121 {
122  double globalMaxSize, globalMinSize;
123 
124  MPI_Reduce(&statistics.maxsize, &globalMaxSize, 1, MPI_DOUBLE, MPI_MAX,
125  0, MPI_COMM_WORLD);
126  MPI_Reduce(&statistics.minsize, &globalMinSize, 1, MPI_DOUBLE, MPI_MIN,
127  0, MPI_COMM_WORLD);
128 
129  if (MPIrank == 0)
130  printf("%12s%10.4lf%10.4lf%10s%10s\n", "Size ", globalMinSize,
131  globalMaxSize, "-", "-");
132 }
int MPIrank
Definition: global.h:134
double maxsize
Definition: global.h:258
double minsize
Definition: global.h:257
struct statisticsData statistics
Definition: global.h:268

Here is the caller graph for this function:

void statisticsVelocity ( )

This function computes and prints out velocity statistics.

Definition at line 106 of file stats.c.

References globalMaxVel, globalMinVel, statisticsData::maxvel, statisticsData::minvel, MPIrank, and statistics.

107 {
108  MPI_Reduce(&statistics.minvel, &globalMinVel, 1, MPI_DOUBLE, MPI_MIN, 0,
109  MPI_COMM_WORLD);
110  MPI_Reduce(&statistics.maxvel, &globalMaxVel, 1, MPI_DOUBLE, MPI_MAX, 0,
111  MPI_COMM_WORLD);
112  if (MPIrank == 0)
113  printf("%12s%10.4lf%10.4lf%10s%10s\n", "Velocity ", globalMinVel,
114  globalMaxVel, "-", "-");
115 }
int MPIrank
Definition: global.h:134
struct statisticsData statistics
Definition: global.h:268
double maxvel
Definition: global.h:260
double globalMinVel
Definition: global.h:270
double globalMaxVel
Definition: global.h:271
double minvel
Definition: global.h:261