22 #include <LbmLib/include/solver/BioSolver/BioSolverDifferentiation.hpp>
23 #include <LbmLib/include/geometry/GeometryHandler.hpp>
24 #include <LbmLib/include/GlobalSimulationParameters.hpp>
34 const unsigned int FREQUENCY = 100;
35 const double THRESHOLD = 1.6;
39 BioSolverDifferentiation::BioSolverDifferentiation() : BioBaseSolver()
47 if (Parameters.getCurrentIteration()%FREQUENCY != 0) {
52 std::map<unsigned int,double> accumulatedcellconcentrationmap =
56 this->cellDefinition_.clear();
58 this->cellDefinition_[(*it).getDomainIdentifier()].push_back(it);
62 std::call_once(flag, [
this,&geometryhandler](){
65 for (
auto it : this->cellDefinition_) {
71 for(std::map<unsigned int,double>::iterator it = ++accumulatedcellconcentrationmap.begin();
72 it != accumulatedcellconcentrationmap.end();
74 if (it->second < THRESHOLD) {
85 const std::string BioSolverDifferentiation::name =
"BioSolverDifferentiation";
void copyCellTypeToPhysicalNodes(std::map< unsigned int, unsigned int > &celltrackermap)
update the celltypes of all *PhysicalNode*s with domainid
std::map< unsigned int, double > computeAccumulatedDomainConcentrations(const std::string &name) const
Compute the accumulated concentrations of species name in all domains.
virtual void applyBioProcess(geometry::GeometryHandler &geometryhandler, solver::ForceSolver &forcesolver)
Applies biological processes.
const Geometry & getGeometry() const
getter for the geometry
const std::vector< std::shared_ptr< Connection > > & getConnections() const
getConnections Getter for connections
std::map< unsigned int, unsigned int > & getCellTypeTrackerMap(void)
Returns a reference to the cellTypeTrackerMap.
class responsible for generating the internal geometry representation