36 #include "WallShearStressBasedRegressionSolver.hpp" 37 #include "Owen11Parameters.hpp" 40 template<
unsigned DIM>
43 mThresholdWss(
Owen11Parameters::mpCriticalWallShearStress->GetValue(
"WallShearStressBasedRegressionSolver")),
44 mMaxTimeWithLowWss(
Owen11Parameters::mpMaxTimeWithLowWallShearStress->GetValue(
"WallShearStressBasedRegressionSolver"))
49 template<
unsigned DIM>
55 template<
unsigned DIM>
62 template<
unsigned DIM>
68 template<
unsigned DIM>
74 template<
unsigned DIM>
79 EXCEPTION(
"The regression solver needs an initial vessel network");
82 std::vector<boost::shared_ptr<Vessel<DIM> > > vessels = this->
mpNetwork->GetVessels();
83 for(
unsigned idx=0;idx<vessels.size(); idx++)
86 if (vessels[idx]->GetFlowProperties()->GetWallShearStress() <
mThresholdWss)
88 if (!(vessels[idx]->GetFlowProperties()->HasRegressionTimerStarted()) && !(vessels[idx]->GetFlowProperties()->HasVesselRegressed(this->
mReferenceTime)))
97 vessels[idx]->GetFlowProperties()->ResetRegressionTimer();
102 for(
unsigned idx=0;idx<vessels.size(); idx++)
104 if (vessels[idx]->GetFlowProperties()->HasVesselRegressed(this->
mReferenceTime))
106 this->
mpNetwork->RemoveVessel(vessels[idx],
true);
units::quantity< unit::time > mReferenceTime
void SetMaximumTimeWithLowWallShearStress(units::quantity< unit::time > time)
virtual ~WallShearStressBasedRegressionSolver()
static boost::shared_ptr< WallShearStressBasedRegressionSolver< DIM > > Create()
units::quantity< unit::time > mMaxTimeWithLowWss
boost::shared_ptr< VesselNetwork< DIM > > mpNetwork
units::quantity< unit::pressure > mThresholdWss
void SetLowWallShearStressThreshold(units::quantity< unit::pressure > threshold)
WallShearStressBasedRegressionSolver()