Skip to content

Commit ffcc06a

Browse files
committed
Move parameters to input file
1 parent 251a9d6 commit ffcc06a

File tree

15 files changed

+329
-118
lines changed

15 files changed

+329
-118
lines changed

Code/Source/svFSI/ComMod.h

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,45 @@ class stModelType
383383
fibStrsType Tf;
384384
};
385385

386+
class grModelType
387+
{
388+
public:
389+
int n_t_pre = 0;
390+
int n_t_end = 0;
391+
int example = 0;
392+
double KsKi = 0.0;
393+
double curve = 0.0;
394+
double mult = 0.0;
395+
double rIo = 0.0;
396+
double hwaves = 0.0;
397+
double lo = 0.0;
398+
double phieo = 0.0;
399+
double phimo = 0.0;
400+
double phico = 0.0;
401+
double eta = 0.0;
402+
double mu = 0.0;
403+
double Get = 0.0;
404+
double Gez = 0.0;
405+
double alpha = 0.0;
406+
double cm = 0.0;
407+
double dm = 0.0;
408+
double Gm = 0.0;
409+
double cc = 0.0;
410+
double dc = 0.0;
411+
double Gc = 0.0;
412+
double betat = 0.0;
413+
double betaz = 0.0;
414+
double betad = 0.0;
415+
double Tmax = 0.0;
416+
double lamM = 0.0;
417+
double lam0 = 0.0;
418+
double KfKi = 0.0;
419+
double inflam = 0.0;
420+
double aexp = 0.0;
421+
double delta = 0.0;
422+
423+
};
424+
386425
/// @brief Fluid viscosity model type
387426
//
388427
class viscModelType
@@ -439,6 +478,9 @@ class dmnType
439478

440479
// Viscosity model for fluids
441480
viscModelType visc;
481+
482+
// G&R model for growth and remodeling
483+
grModelType grM;
442484
};
443485

444486
/// @brief Mesh adjacency (neighboring element for each element)

Code/Source/svFSI/Parameters.cpp

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -730,11 +730,58 @@ void StVenantKirchhoffParameters::print_parameters()
730730
/// @brief Parameters associated with GR_equilibrated material model
731731
GREquilibratedParameters::GREquilibratedParameters()
732732
{
733-
value_set = true;
734-
}
735-
736-
void GREquilibratedParameters::set_values(tinyxml2::XMLElement* con_params)
733+
// A parameter that must be defined.
734+
const bool required = true;
735+
736+
set_parameter("n_t_pre", 0, required, n_t_pre);
737+
set_parameter("n_t_end", 0, required, n_t_end);
738+
set_parameter("example", 0, required, example);
739+
set_parameter("KsKi", 0.0, required, KsKi);
740+
set_parameter("curve", 0.0, required, curve);
741+
set_parameter("mult", 0.0, required, mult);
742+
set_parameter("rIo", 0.0, required, rIo);
743+
set_parameter("hwaves", 0.0, required, hwaves);
744+
set_parameter("lo", 0.0, required, lo);
745+
set_parameter("phieo", 0.0, required, phieo);
746+
set_parameter("phimo", 0.0, required, phimo);
747+
set_parameter("phico", 0.0, required, phico);
748+
set_parameter("eta", 0.0, required, eta);
749+
set_parameter("mu", 0.0, required, mu);
750+
set_parameter("Get", 0.0, required, Get);
751+
set_parameter("Gez", 0.0, required, Gez);
752+
set_parameter("alpha", 0.0, required, alpha);
753+
set_parameter("cm", 0.0, required, cm);
754+
set_parameter("dm", 0.0, required, dm);
755+
set_parameter("Gm", 0.0, required, Gm);
756+
set_parameter("cc", 0.0, required, cc);
757+
set_parameter("dc", 0.0, required, dc);
758+
set_parameter("Gc", 0.0, required, Gc);
759+
set_parameter("betat", 0.0, required, betat);
760+
set_parameter("betaz", 0.0, required, betaz);
761+
set_parameter("betad", 0.0, required, betad);
762+
set_parameter("Tmax", 0.0, required, Tmax);
763+
set_parameter("lamM", 0.0, required, lamM);
764+
set_parameter("lam0", 0.0, required, lam0);
765+
set_parameter("KfKi", 0.0, required, KfKi);
766+
set_parameter("inflam", 0.0, required, inflam);
767+
set_parameter("aexp", 0.0, required, aexp);
768+
set_parameter("delta", 0.0, required, delta);
769+
770+
set_xml_element_name("Constitutive_model type=GR_equilibrated");
771+
}
772+
773+
void GREquilibratedParameters::set_values(tinyxml2::XMLElement* xml_elem)
737774
{
775+
776+
std::string error_msg = "Unknown Constitutive_model type=GR_equilibrated XML element '";
777+
778+
using std::placeholders::_1;
779+
using std::placeholders::_2;
780+
std::function<void(const std::string&, const std::string&)> ftpr =
781+
std::bind( &LeeSacksParameters::set_parameter_value, *this, _1, _2);
782+
783+
xml_util_set_parameters(ftpr, xml_elem, error_msg);
784+
738785
value_set = true;
739786
}
740787

Code/Source/svFSI/Parameters.h

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,40 @@ class GREquilibratedParameters : public ParameterLists
510510
void set_values(tinyxml2::XMLElement* modl_params);
511511
void print_parameters();
512512
bool value_set = false;
513+
enum gr_example { none, aneurysm, tortuosity, stenosis };
514+
Parameter<int> n_t_pre;
515+
Parameter<int> n_t_end;
516+
Parameter<int> example;
517+
Parameter<double> KsKi;
518+
Parameter<double> curve;
519+
Parameter<double> mult;
520+
Parameter<double> rIo;
521+
Parameter<double> hwaves;
522+
Parameter<double> lo;
523+
Parameter<double> phieo;
524+
Parameter<double> phimo;
525+
Parameter<double> phico;
526+
Parameter<double> eta;
527+
Parameter<double> mu;
528+
Parameter<double> Get;
529+
Parameter<double> Gez;
530+
Parameter<double> alpha;
531+
Parameter<double> cm;
532+
Parameter<double> dm;
533+
Parameter<double> Gm;
534+
Parameter<double> cc;
535+
Parameter<double> dc;
536+
Parameter<double> Gc;
537+
Parameter<double> betat;
538+
Parameter<double> betaz;
539+
Parameter<double> betad;
540+
Parameter<double> Tmax;
541+
Parameter<double> lamM;
542+
Parameter<double> lam0;
543+
Parameter<double> KfKi;
544+
Parameter<double> inflam;
545+
Parameter<double> aexp;
546+
Parameter<double> delta;
513547
};
514548

515549
/// @brief The ConstitutiveModelParameters class store parameters

Code/Source/svFSI/distribute.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,6 +1052,9 @@ void dist_eq(ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, const std::
10521052
(dmn.phys == EquationType::phys_gr)) {
10531053
dist_mat_consts(com_mod, cm_mod, cm, dmn.stM);
10541054
}
1055+
if (dmn.phys == EquationType::phys_gr) {
1056+
dist_gr_consts(com_mod, cm_mod, cm, dmn.grM);
1057+
}
10551058

10561059
if ((dmn.phys == EquationType::phys_fluid) ||
10571060
(dmn.phys == EquationType::phys_stokes) ||
@@ -1212,6 +1215,44 @@ void dist_mat_consts(const ComMod& com_mod, const CmMod& cm_mod, const cmType& c
12121215

12131216
}
12141217

1218+
/// @brief Distribute G&R properties to all processors.
1219+
void dist_gr_consts(const ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, grModelType& grM)
1220+
{
1221+
using namespace consts;
1222+
1223+
cm.bcast(cm_mod, &grM.KsKi);
1224+
cm.bcast(cm_mod, &grM.curve);
1225+
cm.bcast(cm_mod, &grM.mult);
1226+
cm.bcast(cm_mod, &grM.rIo);
1227+
cm.bcast(cm_mod, &grM.hwaves);
1228+
cm.bcast(cm_mod, &grM.lo);
1229+
cm.bcast(cm_mod, &grM.phieo);
1230+
cm.bcast(cm_mod, &grM.phimo);
1231+
cm.bcast(cm_mod, &grM.phico);
1232+
cm.bcast(cm_mod, &grM.eta);
1233+
cm.bcast(cm_mod, &grM.mu);
1234+
cm.bcast(cm_mod, &grM.Get);
1235+
cm.bcast(cm_mod, &grM.Gez);
1236+
cm.bcast(cm_mod, &grM.alpha);
1237+
cm.bcast(cm_mod, &grM.cm);
1238+
cm.bcast(cm_mod, &grM.dm);
1239+
cm.bcast(cm_mod, &grM.Gm);
1240+
cm.bcast(cm_mod, &grM.cc);
1241+
cm.bcast(cm_mod, &grM.dc);
1242+
cm.bcast(cm_mod, &grM.Gc);
1243+
cm.bcast(cm_mod, &grM.betat);
1244+
cm.bcast(cm_mod, &grM.betaz);
1245+
cm.bcast(cm_mod, &grM.betad);
1246+
cm.bcast(cm_mod, &grM.Tmax);
1247+
cm.bcast(cm_mod, &grM.lamM);
1248+
cm.bcast(cm_mod, &grM.lam0);
1249+
cm.bcast(cm_mod, &grM.KfKi);
1250+
cm.bcast(cm_mod, &grM.inflam);
1251+
cm.bcast(cm_mod, &grM.aexp);
1252+
cm.bcast(cm_mod, &grM.delta);
1253+
cm.bcast(cm_mod, &grM.example);
1254+
}
1255+
12151256

12161257
void dist_visc_model(const ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, viscModelType& lVis)
12171258
{

Code/Source/svFSI/distribute.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ void dist_eq(ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, const std::
4545

4646
void dist_mat_consts(const ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, stModelType& lStM);
4747

48+
void dist_gr_consts(const ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, grModelType& grM);
49+
4850
void dist_visc_model(const ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, viscModelType& lVis);
4951

5052
void part_face(Simulation* simulation, mshType& lM, faceType& lFa, faceType& gFa, Vector<int>& gmtl);

0 commit comments

Comments
 (0)