hemocell
Loading...
Searching...
No Matches
hemoCellField.h
Go to the documentation of this file.
1/*
2This file is part of the HemoCell library
3
4HemoCell is developed and maintained by the Computational Science Lab
5in the University of Amsterdam. Any questions or remarks regarding this library
6can be sent to: info@hemocell.eu
7
8When using the HemoCell library in scientific work please cite the
9corresponding paper: https://doi.org/10.3389/fphys.2017.00563
10
11The HemoCell library is free software: you can redistribute it and/or
12modify it under the terms of the GNU Affero General Public License as
13published by the Free Software Foundation, either version 3 of the
14License, or (at your option) any later version.
15
16The library is distributed in the hope that it will be useful,
17but WITHOUT ANY WARRANTY; without even the implied warranty of
18MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19GNU Affero General Public License for more details.
20
21You should have received a copy of the GNU Affero General Public License
22along with this program. If not, see <http://www.gnu.org/licenses/>.
23*/
24#ifndef HEMOCELLFIELD_H
25#define HEMOCELLFIELD_H
26
27namespace hemo {
28class HemoCellField;
29}
30#include "config.h"
31#include "constant_defaults.h"
32#include "cellMechanics.h"
33#include "meshMetrics.h"
34#include "hemoCellFields.h"
35#include "hemoCellParticle.h"
36
37#include "multiBlock/multiBlockLattice3D.hh"
38#include "particles/multiParticleField3D.hh"
39
40namespace hemo {
41/*contains information about one particular cellfield, structlike*/
43 static vector<int> default_output;
44 public:
45
46 HemoCellField(HemoCellFields& cellFields_, string & name_, unsigned int ctype_, int contructType);
49 //ShellModel3D<T> * model;
50 plb::TriangularSurfaceMesh<T> & getMesh();
51 std::string name;
54 plb::TriangularSurfaceMesh<T> * meshElement = 0;
55 plb::TriangleBoundary3D<T> * boundaryElement = 0 ;
57 unsigned char ctype;
58
59 int numVertex = 0;
60 T volume = 0;
63 unsigned int timescale = 1;
64 unsigned int minimumDistanceFromSolid = 0;
65 bool outputTriangles = false;
66 vector<hemo::Array<plint,3>> triangle_list;
67 void(*kernelMethod)(plb::BlockLattice3D<T,DESCRIPTOR> &,HemoCellParticle&);
68 plb::MultiParticleField3D<HemoCellParticleField> * getParticleField3D();
69 plb::MultiBlockLattice3D<T,DESCRIPTOR> * getFluidField3D();
71 std::string getIdentifier();
72 plb::MultiParticleField3D<HemoCellParticleField> * getParticleArg();
73 void setOutputVariables(const vector<int> &);
75 void statistics();
76 /* position is in micrometers, so we still have to convert it*/
77 void addSingleCell(hemo::Array<T,3> position, plint cellId);
80 bool doSolidifyMechanics = false;
81 bool doInteriorViscosity = false;
83 plb::Dynamics<T,DESCRIPTOR> * innerViscosityDynamics = 0;
84};
85}
86
87#endif /* HEMOCELLFIELD_H */
88
Definition cellMechanics.h:37
Definition config.h:58
Definition hemoCellField.h:42
plb::TriangularSurfaceMesh< T > & getMesh()
Definition hemoCellField.cpp:187
plb::MultiParticleField3D< HemoCellParticleField > * getParticleArg()
Definition hemoCellField.cpp:181
plb::TriangleBoundary3D< T > * boundaryElement
Definition hemoCellField.h:55
HemoCellFields & cellFields
Definition hemoCellField.h:52
void addSingleCell(hemo::Array< T, 3 > position, plint cellId)
Definition hemoCellField.cpp:168
unsigned int minimumDistanceFromSolid
Definition hemoCellField.h:64
vector< hemo::Array< plint, 3 > > triangle_list
Definition hemoCellField.h:66
static vector< int > default_output
Definition hemoCellField.h:43
bool doInteriorViscosity
Definition hemoCellField.h:81
vector< int > desiredOutputVariables
Definition hemoCellField.h:53
~HemoCellField()
Definition hemoCellField.cpp:119
T restingCellVolume
Definition hemoCellField.h:62
plb::Dynamics< T, DESCRIPTOR > * innerViscosityDynamics
Definition hemoCellField.h:83
bool outputTriangles
Definition hemoCellField.h:65
plb::MultiParticleField3D< HemoCellParticleField > * getParticleField3D()
Definition hemoCellField.cpp:185
plb::TriangularSurfaceMesh< T > * meshElement
Definition hemoCellField.h:54
hemo::Array< T, 6 > getOriginalBoundingBox()
Definition hemoCellField.cpp:149
plb::MeshMetrics< T > * meshmetric
Definition hemoCellField.h:79
Config * materialCfg
Definition hemoCellField.h:56
int getNumberOfCells_Global()
Definition hemoCellField.cpp:182
T volumeFractionOfLspPerNode
Definition hemoCellField.h:61
void setOutputVariables(const vector< int > &)
Definition hemoCellField.cpp:139
CellMechanics * mechanics
Definition hemoCellField.h:74
T volume
Definition hemoCellField.h:60
bool doSolidifyMechanics
Definition hemoCellField.h:80
int numVertex
Definition hemoCellField.h:59
void(* kernelMethod)(plb::BlockLattice3D< T, DESCRIPTOR > &, HemoCellParticle &)
Definition hemoCellField.h:67
plb::MultiBlockLattice3D< T, DESCRIPTOR > * getFluidField3D()
Definition hemoCellField.cpp:186
void statistics()
Definition hemoCellField.cpp:173
T interiorViscosityTau
Definition hemoCellField.h:82
unsigned char ctype
Definition hemoCellField.h:57
std::string getIdentifier()
Definition hemoCellField.cpp:183
unsigned int timescale
Definition hemoCellField.h:63
std::string name
Definition hemoCellField.h:51
Definition hemoCellFields.h:53
Definition hemoCellParticle.h:40
Definition meshMetrics.h:63
double T
Definition constant_defaults.h:118
long int plint
Definition constant_defaults.h:127
Definition config.cpp:34
Definition array.h:39