hemocell
Loading...
Searching...
No Matches
cellMechanics.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 HEMO_CELLMECHANICS
25#define HEMO_CELLMECHANICS
26namespace hemo {
27 class CellMechanics;
28}
29
31#include "hemoCellParticle.h"
32#include "commonCellConstants.h"
33#include "meshMetrics.h"
34#include "constantConversion.h"
35
36namespace hemo {
38 public:
41
42 CellMechanics(HemoCellField & cellfield, Config & modelCfg_) : cellConstants(CommonCellConstants::CommonCellConstantsConstructor(cellfield, modelCfg_)), cfg(modelCfg_) {}
43 virtual ~CellMechanics() {};
44
45 virtual void ParticleMechanics(std::map<int,std::vector<HemoCellParticle *>> &,const std::map<int,bool> &, pluint ctype) = 0 ;
46 virtual void statistics() = 0;
47 virtual void solidifyMechanics(const std::map<int,std::vector<int>>&,std::vector<HemoCellParticle>&,plb::BlockLattice3D<T,DESCRIPTOR> *,plb::BlockLattice3D<T,CEPAC_DESCRIPTOR> *, pluint ctype, HemoCellParticleField &) {};
48
49
51 T kLink = cfg["MaterialModel"]["kLink"].read<T>();
52 T persistenceLengthFine = 7.5e-9; // In [m] -> this is the biological value.
53 T plc = persistenceLengthFine/param::dx; //* sqrt((meshmetric.getNumVertices()-2.0) / (23867-2.0)); // <- Constant from the Karniadakis group. We don't use this.
54 return kLink * param::kBT_lbm/plc;
55 };
56
58 T eqLength = 5e-7/param::dx;
59 return cfg["MaterialModel"]["kBend"].read<T>() * param::kBT_lbm / eqLength;
60 };
61
63 T kVolume = cfg["MaterialModel"]["kVolume"].read<T>();
64 T eqLength = 5e-7/param::dx;
65 T NfacesScaling = 1280.0/cellConstants.triangle_list.size();
66 return kVolume * NfacesScaling * param::kBT_lbm / eqLength;
67 };
68
70 T kArea = cfg["MaterialModel"]["kArea"].read<T>();
71 T eqLength = 5e-7/param::dx;
72 T NfacesScaling = 1280.0/cellConstants.triangle_list.size();
73 return kArea * NfacesScaling * param::kBT_lbm/(eqLength);
74 };
75
77 return cfg["MaterialModel"]["eta_m"].read<T>() * param::dx / param::dt / param::df;
78 };
79};
80}
81#endif
Definition cellMechanics.h:37
virtual void solidifyMechanics(const std::map< int, std::vector< int > > &, std::vector< HemoCellParticle > &, plb::BlockLattice3D< T, DESCRIPTOR > *, plb::BlockLattice3D< T, CEPAC_DESCRIPTOR > *, pluint ctype, HemoCellParticleField &)
Definition cellMechanics.h:47
virtual void ParticleMechanics(std::map< int, std::vector< HemoCellParticle * > > &, const std::map< int, bool > &, pluint ctype)=0
T calculate_kVolume(Config &cfg, plb::MeshMetrics< T > &meshmetric)
Definition cellMechanics.h:62
CellMechanics(HemoCellField &cellfield, Config &modelCfg_)
Definition cellMechanics.h:42
const CommonCellConstants cellConstants
Definition cellMechanics.h:39
T calculate_kLink(Config &cfg, plb::MeshMetrics< T > &meshmetric)
Definition cellMechanics.h:50
virtual ~CellMechanics()
Definition cellMechanics.h:43
virtual void statistics()=0
T calculate_kArea(Config &cfg, plb::MeshMetrics< T > &meshmetric)
Definition cellMechanics.h:69
T calculate_kBend(Config &cfg, plb::MeshMetrics< T > &meshmetric)
Definition cellMechanics.h:57
T calculate_etaM(Config &cfg)
Definition cellMechanics.h:76
Config & cfg
Definition cellMechanics.h:40
Definition commonCellConstants.h:39
const std::vector< hemo::Array< plint, 3 > > triangle_list
Definition commonCellConstants.h:64
Definition config.h:58
Definition hemoCellField.h:42
Definition hemoCellParticleField.h:39
Definition meshMetrics.h:63
double T
Definition constant_defaults.h:118
long unsigned int pluint
Definition constant_defaults.h:130
Definition config.cpp:34