Chaste
Build::
|
#include <StructuralAdaptationSolver.hpp>
Public Member Functions | |
StructuralAdaptationSolver () | |
virtual | ~StructuralAdaptationSolver () |
boost::shared_ptr< FlowSolver< DIM > > | GetFlowSolver () |
virtual void | Iterate () |
void | AddPreFlowSolveCalculator (boost::shared_ptr< AbstractVesselNetworkCalculator< DIM > > pCalculator) |
void | AddPostFlowSolveCalculator (boost::shared_ptr< AbstractVesselNetworkCalculator< DIM > > pCalculator) |
void | SetFlowSolver (boost::shared_ptr< FlowSolver< DIM > > pSolver) |
void | SetRadiusCalculator (boost::shared_ptr< RadiusCalculator< DIM > > pCalculator) |
void | UpdateFlowSolver (bool doFullReset=false) |
Public Member Functions inherited from AbstractStructuralAdaptationSolver< DIM > | |
AbstractStructuralAdaptationSolver () | |
virtual | ~AbstractStructuralAdaptationSolver () |
double | GetTolerance () const |
bool | GetWriteOutput () const |
std::string | GetOutputFileName () const |
units::quantity< unit::time > | GetTimeIncrement () const |
void | SetTolerance (double tolerance) |
void | SetTimeIncrement (units::quantity< unit::time > timeIncrement) |
void | SetMaxIterations (unsigned iterations) |
void | SetWriteOutput (bool writeFlag) |
void | SetOutputFileName (const std::string &rFilename) |
void | SetVesselNetwork (boost::shared_ptr< VesselNetwork< DIM > > pNetwork) |
void | Solve () |
virtual void | Write () |
Static Public Member Functions | |
static boost::shared_ptr< StructuralAdaptationSolver< DIM > > | Create () |
Private Attributes | |
boost::shared_ptr< FlowSolver< DIM > > | mpFlowSolver |
boost::shared_ptr< RadiusCalculator< DIM > > | mpRadiusCalculator |
std::vector< boost::shared_ptr< AbstractVesselNetworkCalculator< DIM > > > | mPreFlowSolveCalculators |
std::vector< boost::shared_ptr< AbstractVesselNetworkCalculator< DIM > > > | mPostFlowSolveCalculators |
Additional Inherited Members | |
Protected Attributes inherited from AbstractStructuralAdaptationSolver< DIM > | |
double | mTolerance |
units::quantity< unit::time > | mTimeIncrement |
units::quantity< unit::time > | mReferenceTimeScale |
bool | mWriteOutput |
std::string | mOutputFileName |
unsigned | mMaxIterations |
boost::shared_ptr< VesselNetwork< DIM > > | mpVesselNetwork |
This is a concrete implementation of a structural adaptation solver. It iteratively changes vessel radii in response to a collection of flow based stimuli until the rate of change of the radius is below a specified tolerance.
Definition at line 51 of file StructuralAdaptationSolver.hpp.
StructuralAdaptationSolver< DIM >::StructuralAdaptationSolver | ( | ) |
Constructor.
Definition at line 43 of file StructuralAdaptationSolver.cpp.
|
virtual |
Destructor.
Definition at line 54 of file StructuralAdaptationSolver.cpp.
void StructuralAdaptationSolver< DIM >::AddPostFlowSolveCalculator | ( | boost::shared_ptr< AbstractVesselNetworkCalculator< DIM > > | pCalculator | ) |
Add a vessel network calculator to be run before the flow solve
pCalculator | a vessel network calculator |
Definition at line 85 of file StructuralAdaptationSolver.cpp.
References StructuralAdaptationSolver< DIM >::mPostFlowSolveCalculators.
void StructuralAdaptationSolver< DIM >::AddPreFlowSolveCalculator | ( | boost::shared_ptr< AbstractVesselNetworkCalculator< DIM > > | pCalculator | ) |
Add a vessel network calculator to be run before the flow solve
pCalculator | a vessel network calculator |
Definition at line 79 of file StructuralAdaptationSolver.cpp.
References StructuralAdaptationSolver< DIM >::mPreFlowSolveCalculators.
|
static |
Factor constructor. Construct a new instance of the class and return a shared pointer to it.
Definition at line 60 of file StructuralAdaptationSolver.cpp.
boost::shared_ptr< FlowSolver< DIM > > StructuralAdaptationSolver< DIM >::GetFlowSolver | ( | ) |
Get the flow calculator
Definition at line 67 of file StructuralAdaptationSolver.cpp.
References StructuralAdaptationSolver< DIM >::mpFlowSolver.
|
virtual |
Perform a single iteration to update the radius and calculators
Implements AbstractStructuralAdaptationSolver< DIM >.
Definition at line 97 of file StructuralAdaptationSolver.cpp.
References AbstractStructuralAdaptationSolver< DIM >::GetTimeIncrement(), StructuralAdaptationSolver< DIM >::mpFlowSolver, StructuralAdaptationSolver< DIM >::mPostFlowSolveCalculators, StructuralAdaptationSolver< DIM >::mpRadiusCalculator, StructuralAdaptationSolver< DIM >::mPreFlowSolveCalculators, AbstractStructuralAdaptationSolver< DIM >::mpVesselNetwork, and StructuralAdaptationSolver< DIM >::UpdateFlowSolver().
void StructuralAdaptationSolver< DIM >::SetFlowSolver | ( | boost::shared_ptr< FlowSolver< DIM > > | pSolver | ) |
Set the flow calculator
pSolver | the flow solver. |
Definition at line 91 of file StructuralAdaptationSolver.cpp.
References StructuralAdaptationSolver< DIM >::mpFlowSolver.
void StructuralAdaptationSolver< DIM >::SetRadiusCalculator | ( | boost::shared_ptr< RadiusCalculator< DIM > > | pCalculator | ) |
Set the radius calculator
pCalculator | the radius calculator. |
Definition at line 73 of file StructuralAdaptationSolver.cpp.
References StructuralAdaptationSolver< DIM >::mpRadiusCalculator.
void StructuralAdaptationSolver< DIM >::UpdateFlowSolver | ( | bool | doFullReset = false | ) |
To be called if the vessel network changes between solves
doFullReset | fully reset all the solvers |
Definition at line 154 of file StructuralAdaptationSolver.cpp.
References StructuralAdaptationSolver< DIM >::mpFlowSolver, StructuralAdaptationSolver< DIM >::mPreFlowSolveCalculators, and AbstractStructuralAdaptationSolver< DIM >::mpVesselNetwork.
Referenced by StructuralAdaptationSolver< DIM >::Iterate().
|
private |
A solver to calculate flow rates and pressures in the network
Definition at line 59 of file StructuralAdaptationSolver.hpp.
Referenced by StructuralAdaptationSolver< DIM >::GetFlowSolver(), StructuralAdaptationSolver< DIM >::Iterate(), StructuralAdaptationSolver< DIM >::SetFlowSolver(), and StructuralAdaptationSolver< DIM >::UpdateFlowSolver().
|
private |
Calculators to be run after the flow solve
Definition at line 74 of file StructuralAdaptationSolver.hpp.
Referenced by StructuralAdaptationSolver< DIM >::AddPostFlowSolveCalculator(), and StructuralAdaptationSolver< DIM >::Iterate().
|
private |
A calculator to determine radius changes
Definition at line 64 of file StructuralAdaptationSolver.hpp.
Referenced by StructuralAdaptationSolver< DIM >::Iterate(), and StructuralAdaptationSolver< DIM >::SetRadiusCalculator().
|
private |
Calculators to be run before the flow solve
Definition at line 69 of file StructuralAdaptationSolver.hpp.
Referenced by StructuralAdaptationSolver< DIM >::AddPreFlowSolveCalculator(), StructuralAdaptationSolver< DIM >::Iterate(), and StructuralAdaptationSolver< DIM >::UpdateFlowSolver().