|
hemocell
|
#include <hemoCellFields.h>

Classes | |
| class | HemoAdvanceParticles |
| class | HemoApplyConstitutiveModel |
| class | HemoBoundaryRepulsionForce |
| class | HemoDeleteIncompleteCells |
| class | HemoDeleteNonLocalParticles |
| class | HemoFindInternalParticleGridPoints |
| class | HemoGetParticles |
| class | HemoInternalGridPointsMembrane |
| class | HemoInterpolateFluidVelocity |
| class | HemoPopulateBindingSites |
| class | HemoPopulateBoundaryParticles |
| class | HemoPrepareSolidification |
| class | HemoRepulsionForce |
| class | HemoSeperateForceVectors |
| class | HemoSetParticles |
| class | HemoSolidifyCells |
| class | HemoSpreadParticleForce |
| class | HemoSyncEnvelopes |
| class | HemoUnifyForceVectors |
| class | HemoupdateResidenceTime |
Public Member Functions | |
| HemoCellFields (plb::MultiBlockLattice3D< T, DESCRIPTOR > &lattice_, unsigned int particleEnvelopeWidth, HemoCell &) | |
| Default constructor, needs an palabos lattice, envelope width (lbm units), and hemocell reference. | |
| void | createParticleField (plb::SparseBlockStructure3D *sbStructure_=0, plb::ThreadAttribution *tAttribution_=0) |
| void | createCEPACfield () |
| void | InitAfterLoadCheckpoint () |
| Used to set variables inside the celltypes for correct access, called through createParticleField. | |
| ~HemoCellFields () | |
| Generic Destructor. | |
| HemoCellField * | addCellType (std::string name_, int constructType) |
| Add an celltype with a certain mesh, the name also specifies <name_>.xml and <name_>.pos. | |
| HemoCellField * | operator[] (unsigned int index) |
| Easy access to contained celltypes. | |
| HemoCellField * | operator[] (string name) |
| Easy access to contained celltypes. | |
| unsigned int | size () |
| Get the number of celltypes. | |
| void | load (plb::XMLreader *documentXML, unsigned int &iter, Config *cfg=NULL) |
| Load a checkpoint, store the current iteration in &iter. | |
| void | save (plb::XMLreader *documentXML, unsigned int iter, Config *cfg=NULL) |
| Save a checkpoint. | |
| plb::MultiParticleField3D< HemoCellParticleField > & | getParticleField3D () |
| Legacy Helper function to get the particle field, mostly unused as direct access is available. | |
| void | readPositionsCellFields (std::string particlePosFile) |
| Legacy reads in only RBC an PLT from a single pos file. | |
| void | advanceParticles () |
| Advance the particles in an iteration. | |
| void | findInternalParticleGridPoints () |
| void | internalGridPointsMembrane () |
| void | interpolateFluidVelocity () |
| Interpolate the velocity of the fluid to the individual particles. | |
| void | spreadParticleForce () |
| Spread the force of all particles over the fluid in this iteration. | |
| void | separate_force_vectors () |
| Separate the force vectors of particles so it becomes clear what the vector for each separate force is. | |
| void | unify_force_vectors () |
| Unify the force vectors of particles to point to a single force. | |
| void | applyRepulsionForce () |
| Apply (and calculate) the repulsion force between particles. | |
| void | applyBoundaryRepulsionForce () |
| Apply (and calculate) the repulsion force between particles and the boundary. | |
| void | deleteIncompleteCells (bool verbose=true) |
| Delete any incomplete cells on a block. | |
| void | applyConstitutiveModel (bool forced=false) |
| Apply the material model of the cells to the particles, updating their force. | |
| void | syncEnvelopes () |
| Sync the particle envelopes between domains. | |
| void | getParticles (vector< HemoCellParticle * > &particles, plb::Box3D &domain) |
| Get particles in a given domain. | |
| void | addParticles (vector< HemoCellParticle > &particles) |
| Add particles to local processors. | |
| void | populateBoundaryParticles () |
| Add boundary particles on the fluid-solid boundary. | |
| void | populateBindingSites (plb::Box3D *box=0) |
| Add bindingSites. | |
| void | deleteNonLocalParticles (int envelope) |
| Delete non local particles (do not delete in envelopesize) | |
| void | solidifyCells () |
| Conditionally solidify cells if requested. | |
| void | prepareSolidification () |
| void | updateResidenceTime (unsigned int rtime) |
| increment cell residence time | |
| int | base_cell_id (int wrapped) |
| void | calculateCommunicationStructure () |
Public Attributes | |
| plb::MultiBlockLattice3D< T, DESCRIPTOR > * | lattice |
| the fluid lattice | |
| vector< int > | desiredFluidOutputVariables |
| A vector specifying the output variables (from const_defaults.h) | |
| vector< int > | desiredCEPACfieldOutputVariables |
| HemoCell & | hemocell |
| Reference to parent. | |
| vector< HemoCellField * > | cellFields |
| Vector containing the cellTypes. | |
| pluint | envelopeSize |
| The envelopeSize for the particles. | |
| plb::MultiParticleField3D< HemoCellParticleField > * | immersedParticles = 0 |
| palabos field storing the particles | |
| plb::MultiParticleField3D< HemoCellParticleField > * | preinlet_immersedParticles = 0 |
| seperate preinlet and domain pointers whenever necessary | |
| plb::MultiParticleField3D< HemoCellParticleField > * | domain_immersedParticles = 0 |
| plb::MultiBlockLattice3D< T, CEPAC_DESCRIPTOR > * | CEPACfield = 0 |
| palabos field for storing the CPAC scalar field if used | |
| T | repulsionCutoff = 0.0 |
| Repulsion variable set through hemocell.h. | |
| T | repulsionConstant = 0.0 |
| Repulsion variable set through hemocell.h. | |
| pluint | repulsionTimescale = 1 |
| Timescale seperation for repulsion, set through hemocell.h. | |
| T | boundaryRepulsionCutoff = 0.0 |
| Boundary repulsion variable set through hemocell.h. | |
| T | boundaryRepulsionConstant = 0.0 |
| Boundary repulsion variable set through hemocell.h. | |
| pluint | boundaryRepulsionTimescale = 1 |
| Timescale seperation for boundary repulsion, set through hemocell.h. | |
| pluint | particleVelocityUpdateTimescale = 1 |
| Timescale seperation for the velocity interpolation from the fluid to the particle. | |
| pluint | solidifyTimescale = 1 |
| pluint | interiorViscosityTimescale = 1 |
| pluint | interiorViscosityEntireGridTimescale = 1 |
| int | periodicity_limit [3] = {100} |
| Limit of cycles in a direction (xyz) | |
| int | periodicity_limit_offset_y = 100 |
| int | periodicity_limit_offset_z = 10000 |
| int | number_of_cells = 0 |
| unsigned int | max_neighbours = 0 |
| plb::CommunicationStructure3D * | large_communicator = 0 |
| plb::ParallelBlockCommunicator3D | envelope_communicator |
Private Member Functions | |
| void | copyXMLreader2XMLwriter (plb::XMLreader const &reader, plb::XMLwriter &writer) |
| void | copyXMLreader2XMLwriter (plb::XMLreaderProxy readerProxy, plb::XMLwriter &writer) |
Private Attributes | |
| vector< vector< NoInitChar > > | sendBuffers |
| vector< vector< NoInitChar > > | recvBuffers |
This class can contain many cellTypes, it keeps track of all the particles of all types. The option exists to get exclusive access to a single cellType if necessary. all the particles are stored in a single particlefield
| hemo::HemoCellFields::HemoCellFields | ( | plb::MultiBlockLattice3D< T, DESCRIPTOR > & | lattice_, |
| unsigned int | particleEnvelopeWidth, | ||
| HemoCell & | |||
| ) |
Default constructor, needs an palabos lattice, envelope width (lbm units), and hemocell reference.
| hemo::HemoCellFields::~HemoCellFields | ( | ) |
Generic Destructor.
| HemoCellField * hemo::HemoCellFields::addCellType | ( | std::string | name_, |
| int | constructType | ||
| ) |
Add an celltype with a certain mesh, the name also specifies <name_>.xml and <name_>.pos.
| void hemo::HemoCellFields::addParticles | ( | vector< HemoCellParticle > & | particles | ) |
Add particles to local processors.
| void hemo::HemoCellFields::advanceParticles | ( | ) |
Advance the particles in an iteration.
| void hemo::HemoCellFields::applyBoundaryRepulsionForce | ( | ) |
Apply (and calculate) the repulsion force between particles and the boundary.
| void hemo::HemoCellFields::applyConstitutiveModel | ( | bool | forced = false | ) |
Apply the material model of the cells to the particles, updating their force.
| void hemo::HemoCellFields::applyRepulsionForce | ( | ) |
Apply (and calculate) the repulsion force between particles.
|
inline |
| void hemo::HemoCellFields::calculateCommunicationStructure | ( | ) |
|
private |
|
private |
| void hemo::HemoCellFields::createCEPACfield | ( | ) |
| void hemo::HemoCellFields::createParticleField | ( | plb::SparseBlockStructure3D * | sbStructure_ = 0, |
| plb::ThreadAttribution * | tAttribution_ = 0 |
||
| ) |
| void hemo::HemoCellFields::deleteIncompleteCells | ( | bool | verbose = true | ) |
Delete any incomplete cells on a block.
| void hemo::HemoCellFields::deleteNonLocalParticles | ( | int | envelope | ) |
Delete non local particles (do not delete in envelopesize)
| void hemo::HemoCellFields::findInternalParticleGridPoints | ( | ) |
| MultiParticleField3D< HemoCellParticleField > & hemo::HemoCellFields::getParticleField3D | ( | ) |
Legacy Helper function to get the particle field, mostly unused as direct access is available.
| void hemo::HemoCellFields::getParticles | ( | vector< HemoCellParticle * > & | particles, |
| plb::Box3D & | domain | ||
| ) |
Get particles in a given domain.
| void hemo::HemoCellFields::InitAfterLoadCheckpoint | ( | ) |
Used to set variables inside the celltypes for correct access, called through createParticleField.
| void hemo::HemoCellFields::internalGridPointsMembrane | ( | ) |
| void hemo::HemoCellFields::interpolateFluidVelocity | ( | ) |
Interpolate the velocity of the fluid to the individual particles.
| void hemo::HemoCellFields::load | ( | plb::XMLreader * | documentXML, |
| unsigned int & | iter, | ||
| Config * | cfg = NULL |
||
| ) |
Load a checkpoint, store the current iteration in &iter.
| HemoCellField * hemo::HemoCellFields::operator[] | ( | string | name | ) |
Easy access to contained celltypes.
| HemoCellField * hemo::HemoCellFields::operator[] | ( | unsigned int | index | ) |
Easy access to contained celltypes.
| void hemo::HemoCellFields::populateBindingSites | ( | plb::Box3D * | box = 0 | ) |
Add bindingSites.
| void hemo::HemoCellFields::populateBoundaryParticles | ( | ) |
Add boundary particles on the fluid-solid boundary.
| void hemo::HemoCellFields::prepareSolidification | ( | ) |
| void hemo::HemoCellFields::readPositionsCellFields | ( | std::string | particlePosFile | ) |
Legacy reads in only RBC an PLT from a single pos file.
| void hemo::HemoCellFields::save | ( | plb::XMLreader * | documentXML, |
| unsigned int | iter, | ||
| Config * | cfg = NULL |
||
| ) |
Save a checkpoint.
| void hemo::HemoCellFields::separate_force_vectors | ( | ) |
Separate the force vectors of particles so it becomes clear what the vector for each separate force is.
| unsigned int hemo::HemoCellFields::size | ( | ) |
Get the number of celltypes.
| void hemo::HemoCellFields::solidifyCells | ( | ) |
Conditionally solidify cells if requested.
| void hemo::HemoCellFields::spreadParticleForce | ( | ) |
Spread the force of all particles over the fluid in this iteration.
| void hemo::HemoCellFields::syncEnvelopes | ( | ) |
Sync the particle envelopes between domains.
| void hemo::HemoCellFields::unify_force_vectors | ( | ) |
Unify the force vectors of particles to point to a single force.
| void hemo::HemoCellFields::updateResidenceTime | ( | unsigned int | rtime | ) |
increment cell residence time
| T hemo::HemoCellFields::boundaryRepulsionConstant = 0.0 |
Boundary repulsion variable set through hemocell.h.
| T hemo::HemoCellFields::boundaryRepulsionCutoff = 0.0 |
Boundary repulsion variable set through hemocell.h.
| pluint hemo::HemoCellFields::boundaryRepulsionTimescale = 1 |
Timescale seperation for boundary repulsion, set through hemocell.h.
| vector<HemoCellField *> hemo::HemoCellFields::cellFields |
Vector containing the cellTypes.
| plb::MultiBlockLattice3D<T,CEPAC_DESCRIPTOR>* hemo::HemoCellFields::CEPACfield = 0 |
palabos field for storing the CPAC scalar field if used
| vector<int> hemo::HemoCellFields::desiredCEPACfieldOutputVariables |
| vector<int> hemo::HemoCellFields::desiredFluidOutputVariables |
A vector specifying the output variables (from const_defaults.h)
| plb::MultiParticleField3D<HemoCellParticleField> * hemo::HemoCellFields::domain_immersedParticles = 0 |
| plb::ParallelBlockCommunicator3D hemo::HemoCellFields::envelope_communicator |
| pluint hemo::HemoCellFields::envelopeSize |
The envelopeSize for the particles.
| HemoCell& hemo::HemoCellFields::hemocell |
Reference to parent.
| plb::MultiParticleField3D<HemoCellParticleField>* hemo::HemoCellFields::immersedParticles = 0 |
palabos field storing the particles
| pluint hemo::HemoCellFields::interiorViscosityEntireGridTimescale = 1 |
| pluint hemo::HemoCellFields::interiorViscosityTimescale = 1 |
| plb::CommunicationStructure3D* hemo::HemoCellFields::large_communicator = 0 |
| plb::MultiBlockLattice3D<T, DESCRIPTOR>* hemo::HemoCellFields::lattice |
the fluid lattice
| unsigned int hemo::HemoCellFields::max_neighbours = 0 |
| int hemo::HemoCellFields::number_of_cells = 0 |
Total number of cells in the simulation, should be constant Is set through hemocell::loadParticles() is added (TODO: also when removed)
| pluint hemo::HemoCellFields::particleVelocityUpdateTimescale = 1 |
Timescale seperation for the velocity interpolation from the fluid to the particle.
| int hemo::HemoCellFields::periodicity_limit[3] = {100} |
Limit of cycles in a direction (xyz)
| int hemo::HemoCellFields::periodicity_limit_offset_y = 100 |
| int hemo::HemoCellFields::periodicity_limit_offset_z = 10000 |
| plb::MultiParticleField3D<HemoCellParticleField>* hemo::HemoCellFields::preinlet_immersedParticles = 0 |
seperate preinlet and domain pointers whenever necessary
|
private |
| T hemo::HemoCellFields::repulsionConstant = 0.0 |
Repulsion variable set through hemocell.h.
| T hemo::HemoCellFields::repulsionCutoff = 0.0 |
Repulsion variable set through hemocell.h.
| pluint hemo::HemoCellFields::repulsionTimescale = 1 |
Timescale seperation for repulsion, set through hemocell.h.
|
private |
| pluint hemo::HemoCellFields::solidifyTimescale = 1 |