47#ifndef COMPILING_HEMOCELL_LIBRARY
50#include "palabos3D.hh"
122 template<
class Mechanics>
125 Mechanics * mechanics =
new Mechanics(*cellfield->
materialCfg, *cellfield);
138 void setOutputs(
string name, vector<int> outputs);
154 hlog <<
"(HemoCell) Enabling Solidify Mechanics for " << name <<
" mechanical model" << endl;
155 (*cellfields)[name]->doSolidifyMechanics =
true;
247 std::chrono::high_resolution_clock::duration
lastOutput = std::chrono::high_resolution_clock::duration::zero();
Definition hemoCellField.h:42
Config * materialCfg
Definition hemoCellField.h:56
CellMechanics * mechanics
Definition hemoCellField.h:74
void statistics()
Definition hemoCellField.cpp:173
Definition hemoCellFields.h:53
HemoCellField * addCellType(std::string name_, int constructType)
Add an celltype with a certain mesh, the name also specifies <name_>.xml and <name_>....
Definition hemoCellFields.cpp:141
T calculateFractionalLoadImbalance()
Calculate and return the fractional load imbalance.
Definition hemoCell.cpp:378
void setOutputs(string name, vector< int > outputs)
Definition hemoCell.cpp:149
void sanityCheck()
To be run right before the first iteration, all checking should move here.
Definition hemoCell.cpp:585
void loadCheckPoint()
Load a checkpoint.
Definition hemoCell.cpp:199
void setParticleVelocityUpdateTimeScaleSeparation(unsigned int separation)
Definition hemoCell.cpp:388
MultiBlockLattice3D< T, DESCRIPTOR > * preinlet_lattice
Definition hemocell.h:234
bool repulsionEnabled
Definition hemocell.h:141
void setInitialMinimumDistanceFromSolid(string name, T distance)
Definition hemoCell.cpp:412
bool sanityCheckDone
Checked in iteration, do sanity check when not yet done.
Definition hemocell.h:252
void initializeLattice(MultiBlockManagement3D const &management)
Initialize the fluid field with the given management, should be done after specifing the pre inlets a...
Definition hemoCell.cpp:438
void doRestructure(bool checkpoint_avail=true)
Restructure the grid, has an optional argument to specify whether a checkpoint from this iteration is...
Definition hemoCell.cpp:580
void setRepulsionTimeScaleSeperation(unsigned int separation)
Definition hemoCell.cpp:394
void setInteriorViscosityTimeScaleSeperation(unsigned int separation, unsigned int separation_entire_grid)
Definition hemoCell.cpp:404
void initializeCellfield()
Definition hemoCell.cpp:135
map< plint, plint > BlockToMpi
Definition hemocell.h:230
void loadParticles()
Load the particles from their .pos files.
Definition hemoCell.cpp:191
void setCEPACOutputs(vector< int > outputs)
Definition hemoCell.cpp:161
bool boundaryRepulsionEnabled
Definition hemocell.h:142
PreInlet * preInlet
Definition hemocell.h:226
void setSystemPeriodicityLimit(unsigned int axis, int limit)
Definition hemoCell.cpp:182
void addCellType(string name, int constructType)
Definition hemocell.h:123
double * LEcurrentDisplacement
Definition hemocell.h:147
HemoCellFields * cellfields
The cellfields contains the particle field and all celltypes.
Definition hemocell.h:240
XMLreader * documentXML
Definition hemocell.h:243
void enableBoundaryParticles(T boundaryRepulsionConstant, T boundaryRepulsionCutoff, unsigned int timestep=1)
Definition hemoCell.cpp:428
void saveCheckPoint()
Save a checkpoint.
Definition hemoCell.cpp:210
LoadBalancer * loadBalancer
Definition hemocell.h:232
void checkExitSignals()
Check if any exis signal was caught.
Definition hemoCell.cpp:289
unsigned int iter
Definition hemocell.h:241
bool outputInSiUnits
Specify whether the output is in SI or LBM units.
Definition hemocell.h:201
void setSolidifyTimeScaleSeperation(unsigned int separation)
Definition hemoCell.cpp:399
void doLoadBalance()
Load balance the domain (only necessary with nAtomic blocks > nMpi processors, also checkpoints.
unsigned int lastOutputAt
Store the last time (iteration) output occured.
Definition hemocell.h:246
MultiBlockLattice3D< T, DESCRIPTOR > * lattice
The fluid lattice.
Definition hemocell.h:234
void setFluidOutputs(vector< int > outputs)
Definition hemoCell.cpp:155
MPIHandle
Switch to indicate if the MPI instance is managed externally. The MPI instance is typically invoked w...
Definition hemocell.h:76
MultiBlockLattice3D< T, DESCRIPTOR > * domain_lattice
Definition hemocell.h:234
void setRepulsion(T repulsionConstant, T repulsionCutoff)
Definition hemoCell.cpp:420
Config * cfg
Definition hemocell.h:238
void setMaterialTimeScaleSeparation(string name, unsigned int separation)
Definition hemoCell.cpp:383
void writeOutput()
Write the specified output to hdf5 files.
Definition hemoCell.cpp:221
void enableSolidifyMechanics(string name)
Definition hemocell.h:153
void iterate()
Definition hemoCell.cpp:299
~HemoCell()
Definition hemoCell.cpp:97
void latticeEquilibrium(T rho, hemo::Array< T, 3 > vel)
Definition hemoCell.cpp:129
MultiBlockManagement3D * domain_lattice_management
Definition hemocell.h:236
HemoCell(char *configFileName, int argc, char *argv[])
Definition hemocell.h:86
MultiBlockManagement3D * preinlet_lattice_management
Definition hemocell.h:236
bool leesEdwardsBC
Definition hemocell.h:146
bool partOfpreInlet
Definition hemocell.h:228
std::chrono::high_resolution_clock::duration lastOutput
Definition hemocell.h:247
void setSystemPeriodicity(unsigned int axis, bool bePeriodic)
Definition hemoCell.cpp:168
bool loadParticlesIsCalled
Definition hemocell.h:189
Definition loadBalancer.h:31
double T
Definition constant_defaults.h:118
int argc
Definition main.cpp:22
char ** argv
Definition main.cpp:23
Logfile hlog
Definition logfile.cpp:26
Definition meshGeneratingFunctions.cpp:28