22#include "Core/Exception.h"
95 Parameter(
const std::string& name, T value,
bool required, std::vector<T> range = {}) :
96 value_(value), name_(name), required_(required)
102 std::string name()
const {
return name_; };
103 T value()
const {
return value_; };
104 T operator()()
const {
return value_; };
105 bool defined()
const {
return value_set_; };
110 std::ostringstream str_stream;
111 str_stream << value_;
112 return str_stream.str();
115 friend std::ostream& operator << (std::ostream& out,
const Parameter<T>& param)
117 out << param.value();
122 void set(
const std::string& name,
bool required, T value) {
124 required_ = required;
129 void set(
const std::string& str_value)
131 if (str_value ==
"") {
135 auto str = str_value;
136 std::string::iterator end_pos = std::remove(str.begin(), str.end(),
' ');
137 str.erase(end_pos, str.end());
139 std::istringstream str_stream(str);
140 if (!(str_stream >> value_)) {
141 std::istringstream str_stream(str);
142 if (!(str_stream >> std::boolalpha >> value_)) {
143 svmp::raise<svmp::ParseException>(
"Incorrect value '" + str +
"' for '" + name_ +
"'.");
150 bool check_required_set()
159 std::string name_ =
"";
160 bool required_ =
false;
161 bool value_set_ =
false;
162 std::vector<T> range_;
174 VectorParameter(
const std::string& name,
const std::vector<T>& value,
bool required, std::vector<T> range = {}) :
175 value_(value), name_(name), required_(required)
181 std::string name()
const {
return name_; };
182 std::vector<T> value()
const {
return value_; };
183 bool defined()
const {
return value_set_; };
184 int size()
const {
return value_.size(); };
186 std::vector<T> operator()()
const {
return value_; };
187 const double& operator[](
const int i)
const {
return value_[i]; };
194 if constexpr (std::is_same<T, std::string>::value) {
195 for (
auto v : value_) {
196 str +=
" " + v +
" ";
199 for (
auto v : value_) {
200 str +=
" " + std::to_string(v);
209 for (
int i = 0; i < param.size(); i++) {
210 out << param.value_[i];
216 void set(
const std::string& name,
bool required,
const std::vector<T>& value)
219 required_ = required;
224 void set(
const std::string& str_value)
226 if (str_value ==
"") {
230 std::string error_msg =
"Improper vector format '" + str_value +
"' found in '" + name_ +
"'." +
" Vector format is: (x,y,z)";
231 std::regex sep(
"\\(|\\)|\\,");
232 auto str = std::regex_replace(str_value, sep,
" ");
245 if constexpr (std::is_same<T, std::string>::value) {
246 std::stringstream ssin(str);
248 while (ssin >> value) {
249 value_.push_back(value);
253 std::istringstream ssin(str);
254 while (ssin >> value) {
255 value_.push_back(value);
262 bool check_required_set()
270 std::vector<T> value_;
272 bool required_ =
false;
273 bool value_set_ =
false;
274 std::vector<T> range_;
292 void set_xml_element_name(
const std::string& name)
294 xml_element_name = name;
300 param.
set(name, required, value);
306 param.
set(name, required, value);
312 param.
set(name, required, value);
318 param.
set(name, required, value);
322 void set_parameter(
const std::string& name, std::initializer_list<std::string> value,
bool required,
325 param.
set(name, required, value);
331 param.
set(name, required, value);
337 param.
set(name, required, value);
345 svmp::raise<svmp::ParseException>(
"Unknown " + xml_element_name +
" XML element '" + name +
"'.");
351 if (name ==
"Activation_functions") {
353 (*vec_param)->value_.clear();
354 (*vec_param)->set(value);
356 svmp::raise<svmp::ParseException>(
"Activation_functions is not a VectorParameter<int>.");
360 else if (name ==
"Weights") {
362 (*vec_param)->value_.clear();
363 (*vec_param)->set(value);
365 svmp::raise<svmp::ParseException>(
"Weights is not a VectorParameter<double>.");
370 std::visit([&](
auto&& p) ->
void {
382 svmp::raise<svmp::ParseException>(
"Unknown " + xml_element_name +
" XML element '" + name +
"'.");
385 std::visit([value](
auto&& p) { p->set(value); },
params_map[name]);
391 bool unset_found =
false;
394 if (std::visit([](
auto&& p) {
395 return !p->check_required_set();
397 svmp::raise<svmp::ParseException>(xml_element_name +
" XML element '" + key +
"' has not been set.");
404 std::map<std::string,std::string> params;
407 std::visit([¶ms](
auto&& p) {
408 params[p->name()] = p->svalue();
419 std::cout << key <<
": ";
420 std::visit([](
auto& p) {
421 std::cout << p->name_ << std::endl;
422 std::cout << p->svalue() << std::endl;
432 std::string xml_element_name =
"";
445 tinyxml2::XMLDocument document;
446 tinyxml2::XMLElement* root_element =
nullptr;
447 static std::string NAME;
461 bool defined()
const {
return value_set; };
462 void set_values(tinyxml2::XMLElement* con_model_params);
463 void print_parameters();
469 bool value_set =
false;
476 bool defined()
const {
return value_set; };
477 void set_values(tinyxml2::XMLElement* con_model_params);
478 void print_parameters();
483 bool value_set =
false;
493 bool defined()
const {
return value_set; };
494 void set_values(tinyxml2::XMLElement* con_model_params);
495 void print_parameters();
507 bool value_set =
false;
514 bool defined()
const {
return value_set; };
515 void set_values(tinyxml2::XMLElement* con_model_params);
516 void print_parameters();
522 bool value_set =
false;
529 bool defined()
const {
return value_set; };
530 void set_values(tinyxml2::XMLElement* con_model_params);
531 void print_parameters();
534 bool value_set =
false;
541 void set_values(tinyxml2::XMLElement* modl_params);
542 void print_parameters();
543 bool value_set =
false;
550 void set_values(tinyxml2::XMLElement* modl_params);
551 void print_parameters();
552 bool value_set =
false;
562 void print_parameters();
563 void set_values(tinyxml2::XMLElement* xml_elem);
590 bool defined()
const {
return value_set; };
591 void set_values(tinyxml2::XMLElement* con_model_params);
592 void print_parameters();
594 std::vector<CANNRowParameters*> rows;
596 bool value_set =
false;
605 void print_parameters();
607 bool defined()
const {
return value_set; };
608 void set_values(tinyxml2::XMLElement* modl_params);
612 static const std::string GUCCIONE_MODEL;
613 static const std::string HGO_MODEL;
614 static const std::string HOLZAPFEL_OGDEN_MODEL;
615 static const std::string HOLZAPFEL_OGDEN_MA_MODEL;
616 static const std::string LEE_SACKS;
617 static const std::string NEOHOOKEAN_MODEL;
618 static const std::string STVENANT_KIRCHHOFF_MODEL;
619 static const std::string CANN_MODEL;
634 bool value_set =
false;
645 bool defined()
const {
return value_set; };
646 void set_values(tinyxml2::XMLElement* xml_elem);
654 bool value_set =
false;
677 static const std::string xml_element_name_;
679 bool defined()
const {
return value_set; };
680 void set_values(tinyxml2::XMLElement* xml_elem);
693 bool value_set =
false;
726 static const std::string xml_element_name_;
728 bool defined()
const {
return value_set; };
729 void set_values(tinyxml2::XMLElement* xml_elem);
734 bool value_set =
false;
750 void print_parameters();
751 void set_values(tinyxml2::XMLElement* xml_elem);
786 static const std::string xml_element_name_;
788 void set_values(tinyxml2::XMLElement* xml_elem);
789 void print_parameters();
797 bool value_set =
false;
815 static const std::string xml_element_name_;
817 void set_values(tinyxml2::XMLElement* xml_elem);
818 void print_parameters();
841 bool value_set =
false;
850 void print_parameters();
851 void set_values(tinyxml2::XMLElement* bc_params);
920 void print_parameters();
921 void set_values(tinyxml2::XMLElement* xml_elem);
928 std::vector<Parameter<bool>> output_list;
931 std::vector<Parameter<std::string>> alias_list;
948 void set_values(tinyxml2::XMLElement* xml_elem);
950 static const std::string xml_element_name_;
971 void set_values(tinyxml2::XMLElement* xml_elem);
988 bool defined()
const {
return value_set; };
989 void set_values(tinyxml2::XMLElement* xml_elemnt);
993 bool value_set =
false;
1008 void print_parameters();
1009 void set_values(tinyxml2::XMLElement* equation_params);
1017 void print_parameters();
1018 void set_values(tinyxml2::XMLElement* xml_elem);
1031 void print_parameters();
1032 void set_values(tinyxml2::XMLElement* xml_elem);
1045 static const std::string CONSTANT_MODEL;
1046 static const std::string CARREAU_YASUDA_MODEL;
1047 static const std::string CASSONS_MODEL;
1048 static const std::set<std::string> model_names;
1050 void print_parameters();
1051 void set_values(tinyxml2::XMLElement* xml_elem);
1071 void print_parameters();
1072 void set_values(tinyxml2::XMLElement* equation_params);
1080 void print_parameters();
1081 void set_values(tinyxml2::XMLElement* equation_params);
1092 static const std::string NEWTONIAN_MODEL;
1093 static const std::string POTENTIAL_MODEL;
1094 static const std::set<std::string> model_names;
1096 void print_parameters();
1097 void set_values(tinyxml2::XMLElement* xml_elem);
1114 void print_parameters();
1115 void set_values(tinyxml2::XMLElement* fsi_file);
1116 bool defined()
const {
return values_set_; };
1118 bool values_set_ =
false;
1133 void print_parameters();
1134 void set_values(tinyxml2::XMLElement* fsi_file);
1165 bool defined()
const {
return value_set; };
1166 void set_values(tinyxml2::XMLElement* xml_elem);
1171 bool value_set =
false;
1183 bool defined()
const {
return value_set; };
1184 void set_values(tinyxml2::XMLElement* xml_elem);
1189 bool value_set =
false;
1199 bool defined()
const {
return value_set; };
1200 void set_values(tinyxml2::XMLElement* xml_elem);
1205 bool value_set =
false;
1238 bool defined()
const {
return value_set; };
1239 void print_parameters();
1240 void set_values(tinyxml2::XMLElement* xml_elem);
1251 bool value_set =
false;
1261 bool defined()
const {
return value_set; };
1262 void print_parameters();
1263 void set_values(tinyxml2::XMLElement* xml_elem);
1269 bool value_set =
false;
1289 bool defined()
const {
return value_set; };
1290 void print_parameters()
const;
1291 void set_values(
const tinyxml2::XMLElement *xml_elem);
1292 void validate()
const;
1298 bool value_set =
false;
1306 const std::string &xml_element_name_,
1307 const std::vector<std::pair<std::string, double>> &states);
1316 void set_values(
const tinyxml2::XMLElement *xml_elem);
1348 const std::string &xml_element_name_,
1349 const std::vector<std::pair<std::string, double>> &initial_X,
1350 const std::vector<std::pair<std::string, double>> &initial_Xg);
1359 void set_values(
const tinyxml2::XMLElement *xml_elem);
1382 svmp::check<svmp::FE::InvalidArgumentException>(
1384 "Ionic model parameter '" + label +
"' not found.");
1386 parameter->second.value_ = value;
1387 parameter->second.value_set_ =
true;
1396 for (
size_t i = 0; i < param_value.size(); ++i)
1397 param_vec[i] = param_value[i];
1411 std::initializer_list<double> default_value,
1456 void set_values(
const tinyxml2::XMLElement *xml_elem);
1469 svmp::check<svmp::FE::InvalidArgumentException>(
1471 "Active stress model parameter '" + label +
"' not found.");
1473 parameter->second.value_ = value;
1474 parameter->second.value_set_ =
true;
1546 void set_values(
const tinyxml2::XMLElement *xml_elem);
1577 std::map<std::string, std::unique_ptr<ActiveStressModelParameters>>
1605 void print_parameters();
1606 void set_values(tinyxml2::XMLElement* xml_elem,
bool from_external_xml =
false);
1613 std::vector<std::unique_ptr<StimulusParameters>>
stimuli;
1692 bool values_set_ =
false;
1694 bool defined()
const {
return values_set_; };
1695 void print_parameters();
1696 double get_edge_size(
const std::string& name)
const {
return max_edge_sizes_.at(name); }
1697 bool has_edge_size(
const std::string& name)
const {
return max_edge_sizes_.count(name) == 1; }
1698 void set_values(tinyxml2::XMLElement* mesh_elem);
1701 std::map<std::string, double> max_edge_sizes_;
1720 void print_parameters();
1721 void set_values(tinyxml2::XMLElement* xml_elem);
1754 void print_parameters();
1755 void set_values(tinyxml2::XMLElement* xml_elem,
DomainParameters* default_domain=
nullptr);
1793 std::vector<BodyForceParameters*> body_forces;
1795 std::vector<BoundaryConditionParameters*> boundary_conditions;
1805 std::vector<DomainParameters*> domains;
1809 std::vector<OutputParameters*> outputs;
1851 void print_parameters();
1852 void set_values(tinyxml2::XMLElement* xml_element,
bool from_external_xml =
false);
1854 std::string xml_element_name;
1895 void print_parameters();
1896 void set_values(tinyxml2::XMLElement* xml_elem);
1937 void print_parameters();
1938 void set_values(tinyxml2::XMLElement* mesh_elem,
bool from_external_xml =
false);
1939 std::string get_name()
const {
return name.value(); };
1940 std::string get_path()
const {
return mesh_file_path.value(); };
1942 std::vector<FaceParameters*> face_parameters;
1954 std::vector<VectorParameter<double>> fiber_directions;
1990 void set_values(tinyxml2::XMLElement* xml_elem);
2008 void print_parameters();
2009 void set_values(tinyxml2::XMLElement* xml_elem);
2044 void print_parameters();
2045 void set_values(tinyxml2::XMLElement* mesh_elem);
2046 std::string get_name()
const {
return name.value(); };
2049 std::vector<URISFaceParameters*> URIS_face_parameters;
2074 static const std::set<std::string> constitutive_model_names;
2075 static const std::set<std::string> equation_names;
2076 static const std::string FSI_FILE;
2078 void get_logging_levels(
int& verbose,
int& warning,
int& debug);
2079 void print_parameters();
2080 void read_xml(std::string file_name);
2082 void set_contact_values(tinyxml2::XMLElement* root_element);
2083 void set_equation_values(tinyxml2::XMLElement* root_element);
2084 void set_mesh_values(tinyxml2::XMLElement* root_element);
2085 void set_precomputed_solution_values(tinyxml2::XMLElement* root_element);
2086 void set_projection_values(tinyxml2::XMLElement* root_element);
2087 void set_svzerodsolver_interface_values(tinyxml2::XMLElement* root_element);
2089 void set_RIS_projection_values(tinyxml2::XMLElement* root_element);
2090 void set_URIS_mesh_values(tinyxml2::XMLElement* root_element);
2095 std::vector<MeshParameters*> mesh_parameters;
2096 std::vector<EquationParameters*> equation_parameters;
2097 std::vector<ProjectionParameters*> projection_parameters;
2100 std::vector<RISProjectionParameters*> RIS_projection_parameters;
2101 std::vector<URISMeshParameters*> URIS_mesh_parameters;
Parameters for a generic active stress model.
Definition Parameters.h:1444
std::map< std::string, Parameter< bool > > bool_parameters
Bool-valued parameters.
Definition Parameters.h:1519
bool defined() const
Return whether the parameters represented by this object were defined.
Definition Parameters.h:1450
void set_scalar(const std::string &label, double value)
Set the value of a scalar parameter by label.
Definition Parameters.h:1467
std::map< std::string, Parameter< double > > double_parameters
Double-valued parameters.
Definition Parameters.h:1513
std::map< std::string, Parameter< std::string > > string_parameters
String-valued parameters.
Definition Parameters.h:1516
std::string get_string(const std::string &label) const
Get the value of a string parameter by label.
Definition Parameters.h:1479
double get_scalar(const std::string &label) const
Get the value of a parameter by label.
Definition Parameters.h:1462
void set_values(const tinyxml2::XMLElement *xml_elem)
Set the values of parameters in this object from an XML element.
Definition Parameters.cpp:1888
bool get_bool(const std::string &label) const
Get the value of a bool parameter by label.
Definition Parameters.h:1484
void add_parameter(const std::string &label, const std::string &default_value, bool required)
Add a new parameter to this object.
Definition Parameters.h:1496
void add_parameter(const std::string &label, bool default_value, bool required)
Add a new parameter to this object.
Definition Parameters.h:1502
void add_parameter(const std::string &label, double default_value, bool required)
Add a new parameter to this object.
Definition Parameters.h:1490
bool value_set
Definition Parameters.h:1523
void print_parameters() const
Print the value of parameters.
Definition Parameters.cpp:1866
const std::string xml_element_name
Name of the XML element for this object.
Definition Parameters.h:1459
Parameters for active stress models.
Definition Parameters.h:1534
std::map< std::string, std::unique_ptr< ActiveStressModelParameters > > active_stress_models
Definition Parameters.h:1578
static const std::string xml_element_name
Name of the XML element for this object.
Definition Parameters.h:1566
Parameter< std::string > model_name
Parameter for the model name.
Definition Parameters.h:1570
ActiveStressParameters()
Constructor.
Definition Parameters.cpp:1910
const ActiveStressModelParameters & get_parameters(const std::string &model_name) const
Get the parameters for a given active stress model.
Definition Parameters.cpp:1988
void print_parameters() const
Print the value of parameters.
Definition Parameters.cpp:1921
bool defined() const
Return whether the parameters represented by this object were defined.
Definition Parameters.h:1540
double get_eta_n() const
Get the active tension coefficient along sheet normals.
Definition Parameters.cpp:1983
void set_values(const tinyxml2::XMLElement *xml_elem)
Set the values of parameters in this object from an XML element.
Definition Parameters.cpp:1935
DirectionalDistributionParameters directional_distribution
Parameters for the directional distribution of active tension.
Definition Parameters.h:1573
double get_eta_s() const
Get the active tension coefficient along sheets.
Definition Parameters.cpp:1979
std::string get_model_name() const
Definition Parameters.cpp:1966
bool value_set
Definition Parameters.h:1582
double get_eta_f() const
Get the active tension coefficient along fibers.
Definition Parameters.cpp:1975
Body force over a mesh using the "Add_BF" command.
Definition Parameters.h:747
static const std::string xml_element_name_
Define the XML element name for boundary condition parameters.
Definition Parameters.h:752
The BoundaryConditionParameters stores paramaters for various type of boundary conditions under the A...
Definition Parameters.h:847
static const std::string xml_element_name_
Define the XML element name for equation boundary condition parameters.
Definition Parameters.h:852
RCR values for Neumann BC type.
Definition Parameters.h:782
BoundaryConditionRCRParameters()
RCR values for Neumann BC type.
Definition Parameters.cpp:461
The CANNParameters class stores the parameters table rows for xml element "Constitutive_model type=CA...
Definition Parameters.h:586
CANNParameters()
Constructor for CANNParameters class. Initializes parameter table.
Definition Parameters.cpp:1034
~CANNParameters()
Destructor for CANNParameters class. Deletes memory dynamically allocated to the rows of the table.
Definition Parameters.cpp:1045
The CANNRowParameters class is used to store the parameters for each row of the CANN table for the xm...
Definition Parameters.h:558
static const std::string xml_element_name_
Process parameters for the "Add_row" xml element.
Definition Parameters.h:565
The ConstitutiveModelParameters class store parameters for various constitutive models.
Definition Parameters.h:602
void check_constitutive_model(const Parameter< std::string > &eq_type)
Check if a constitutive model is valid for the given equation.
Definition Parameters.cpp:1137
static const std::map< std::string, std::string > constitutive_model_types
Supported constitutive model types and their aliases.
Definition Parameters.h:673
static const std::string xml_element_name_
Process parameters for various constitutive models.
Definition Parameters.h:609
Coupling to GenBC.
Definition Parameters.h:639
static const std::string xml_element_name_
Coupling to GenBC.
Definition Parameters.h:643
svZeroDSolver coupling options under Add_BC (with Time_dependence Coupled).
Definition Parameters.h:811
The DirectionalDistributionParameters class stores directional distribution parameters for active str...
Definition Parameters.h:1283
static const std::string xml_element_name_
Define the XML element name for directional distribution parameters.
Definition Parameters.h:1287
The DomainParameters class stores parameters for the XML 'Domain' element to specify properties for s...
Definition Parameters.h:1599
std::vector< std::unique_ptr< StimulusParameters > > stimuli
Definition Parameters.h:1613
static const std::string xml_element_name_
Define the XML element name for domain parameters.
Definition Parameters.h:1603
std::map< std::string, std::unique_ptr< IonicModelParameters > > ionic_models
Definition Parameters.h:1620
Definition Parameters.h:1255
static const std::string xml_element_name_
Define the XML element name for ECG leads parameters.
Definition Parameters.h:1259
The EquationParameters class stores parameters for the 'Add_equation' XML element used to specify an ...
Definition Parameters.h:1748
static const std::string xml_element_name_
Define the XML element name for equation parameters.
Definition Parameters.h:1752
The FaceParameters class is used to store parameters for the 'Add_face' XML element.
Definition Parameters.h:1891
static const std::string xml_element_name_
Process parameters for the 'Add_face' XML element.
Definition Parameters.h:1898
Definition Parameters.h:1014
Definition Parameters.h:1028
Definition Parameters.h:1005
Definition Parameters.h:1039
static const std::string xml_element_name_
Process parameters for various fluid viscosity models.
Definition Parameters.h:1043
The GeneralSimulationParameters class stores paramaters for the 'GeneralSimulationParameters' XML ele...
Definition Parameters.h:1847
void set_values(tinyxml2::XMLElement *xml_element, bool from_external_xml=false)
Set general parameters values from XML.
Definition Parameters.cpp:2882
GeneralSimulationParameters()
Process paramaters for the 'GeneralSimulationParameters' XML element.
Definition Parameters.cpp:2804
Definition Parameters.h:473
Definition Parameters.h:511
Definition Parameters.h:490
Definition Parameters.h:442
Generic ionic model initial conditions parameters.
Definition Parameters.h:1302
const bool required
Definition Parameters.h:1329
void set_values(const tinyxml2::XMLElement *xml_elem)
Set the value of parameters in this object from an XML element.
Definition Parameters.cpp:1743
bool value_set
Definition Parameters.h:1337
void print_parameters() const
Print the value of parameters.
Definition Parameters.cpp:1734
bool defined() const
Return whether the parameters represented by this object were defined.
Definition Parameters.h:1310
double operator[](const std::string &label) const
Get the value of a parameter by label.
Definition Parameters.h:1319
const std::string xml_element_name
Name of the XML element for this object.
Definition Parameters.h:1324
std::map< std::string, Parameter< double > > parameters
Parameter instances underlying this object.
Definition Parameters.h:1333
Parameters for a generic ionic model.
Definition Parameters.h:1344
const IonicInitialStateParameters & get_initial_X() const
Get the parameters for the state variables.
Definition Parameters.h:1362
std::map< std::string, VectorParameter< double > > vector_parameters
Vector parameters are stored in a map as key-parameter pairs.
Definition Parameters.h:1428
IonicInitialStateParameters initial_X_parameters
Parameters for the state variables.
Definition Parameters.h:1417
double get_scalar(const std::string &label) const
Get the value of a scalar parameter by label.
Definition Parameters.h:1375
void set_scalar(const std::string &label, double value)
Set the value of a scalar parameter by label.
Definition Parameters.h:1380
Vector< double > get_vector(const std::string &label) const
Get the value of a vector parameter by label.
Definition Parameters.h:1392
bool defined() const
Return whether the parameters represented by this object were defined.
Definition Parameters.h:1353
IonicInitialStateParameters initial_Xg_parameters
Parameters for the gating variables.
Definition Parameters.h:1420
void set_values(const tinyxml2::XMLElement *xml_elem)
Set the values of parameters in this object from an XML element.
Definition Parameters.cpp:1820
const std::string xml_element_name
Name of the XML element for this object.
Definition Parameters.h:1372
std::map< std::string, Parameter< double > > parameters
Definition Parameters.h:1425
bool value_set
Definition Parameters.h:1432
void add_parameter(const std::string &label, double default_value, bool required)
Add a new parameter to this object.
Definition Parameters.h:1404
void add_parameter(const std::string &label, std::initializer_list< double > default_value, bool required)
Add a new vector parameter to this object.
Definition Parameters.h:1410
void print_parameters() const
Print the value of parameters.
Definition Parameters.cpp:1788
const IonicInitialStateParameters & get_initial_Xg() const
Get the parameters for the gating variables.
Definition Parameters.h:1367
Definition Parameters.h:458
The LinearAlgebraParameters class stores parameters for the 'Linear_algebra' XML element.
Definition Parameters.h:1109
void check_input_parameters()
Check the validity of the input parameters.
Definition Parameters.cpp:3550
static const std::string xml_element_name_
Define the XML element name for equation output parameters.
Definition Parameters.h:1111
The LinearSolverParameters class stores parameters for the 'LS' XML element.
Definition Parameters.h:1129
static const std::string xml_element_name_
Define the XML element name for equation output parameters.
Definition Parameters.h:1136
The MeshParameters class is used to store paramaters for the 'Add_mesh' XML element.
Definition Parameters.h:1931
static const std::string xml_element_name_
Define the XML element name for mesh parameters.
Definition Parameters.h:1935
Definition Parameters.h:526
Definition Parameters.h:538
NeoHookeanParameters()
There are no parameters associated with a Neohookean model.
Definition Parameters.cpp:943
The OutputParameters class stores parameters for the Output XML element under Add_equation.
Definition Parameters.h:914
std::string get_alias_value(const std::string &name)
Get the value of an alias by name.
Definition Parameters.cpp:1338
bool get_output_value(const std::string &name)
Get the value of an output by name.
Definition Parameters.cpp:1349
static const std::string xml_element_name_
Define the XML element name for equation output parameters.
Definition Parameters.h:918
The Parameter class template is used to store a named paramater and its scalar value as a basic type:...
Definition Parameters.h:91
void set(const std::string &name, bool required, T value)
Set the parameter name and value, and if it is required.
Definition Parameters.h:122
void set(const std::string &str_value)
Set the parameter value from a string.
Definition Parameters.h:129
std::string svalue()
Get the value of a parameter as a string.
Definition Parameters.h:108
Defines parameter name and value, and stores them in maps for settng values from XML.
Definition Parameters.h:287
void check_required()
Check if any required parameters have not been set.
Definition Parameters.h:389
void set_parameter(const std::string &name, const bool value, bool required, Parameter< bool > ¶m)
Set the name, default value and the parameter required flag.
Definition Parameters.h:298
void set_parameter_value_CANN(const std::string &name, const std::string &value)
set_parameter function to handle CANNRow
Definition Parameters.h:342
void set_parameter_value(const std::string &name, const std::string &value)
Set the value of a paramter from a string.
Definition Parameters.h:379
std::map< std::string, std::variant< Parameter< bool > *, Parameter< double > *, Parameter< int > *, Parameter< std::string > *, VectorParameter< double > *, VectorParameter< int > *, VectorParameter< std::string > * > > params_map
Map used for storing parameters by name / Parameter template union.
Definition Parameters.h:430
std::map< std::string, std::string > get_parameter_list() const
Get the defined parameters as a map of strings.
Definition Parameters.h:403
void print_parameter_list()
Print the parameters.
Definition Parameters.h:416
The Parameters class stores parameter values read in from a solver input file.
Definition Parameters.h:2069
void read_xml(std::string file_name)
Set the simulation parameter values given in an XML format file.
Definition Parameters.cpp:235
The PrecomputedSolutionParameters class stores parameters for the 'Precomputed_solution' XML element ...
Definition Parameters.h:944
The ProjectionParameters class stores parameters for the 'Add_projection' XML element used for fluid-...
Definition Parameters.h:967
static const std::string xml_element_name_
Define the XML element name for mesh parameters.
Definition Parameters.h:973
The RISProjectionParameters class stores parameters for the 'Add_RIS_projection' XML element used for...
Definition Parameters.h:1986
static const std::string xml_element_name_
Define the XML element name for mesh parameters.
Definition Parameters.h:1992
The RemesherParameters class stores parameters for the 'Remesher' XML element used for remeshing.
Definition Parameters.h:1687
static const std::string xml_element_name_
Define the XML element name for mesh parameters.
Definition Parameters.h:1691
Definition Parameters.h:1068
Definition Parameters.h:1086
static const std::string xml_element_name_
Process parameters for various solid viscosity models.
Definition Parameters.h:1090
Definition Parameters.h:1077
Definition Parameters.h:547
StVenantKirchhoffParameters()
There are no parameters associated with a StVenantKirchhoff model.
Definition Parameters.cpp:952
Stores <Box> parameters for CEP stimulus spatial bounds.
Definition Parameters.h:1158
static const std::string xml_element_name_
XML element name for CEP stimulus box spatial bounds.
Definition Parameters.h:1163
The StimulusParameters class stores parameters for 'Stimulus' XML element used to parameters for pace...
Definition Parameters.h:1231
static const std::string xml_element_name_
XML element name for CEP stimulus parameters.
Definition Parameters.h:1236
Stores <Spatial_bounds> parameters for CEP stimulus geometry restrictions.
Definition Parameters.h:1194
static const std::string xml_element_name_
XML element name for CEP stimulus spatial bounds.
Definition Parameters.h:1197
Stores <Sphere> parameters for CEP stimulus spatial bounds.
Definition Parameters.h:1176
static const std::string xml_element_name_
XML element name for CEP stimulus sphere spatial bounds.
Definition Parameters.h:1181
The URISFaceParameters class is used to store parameters for the 'Add_URIS_face' XML element.
Definition Parameters.h:2004
static const std::string xml_element_name_
Process parameters for the 'Add_URIS_face' XML element.
Definition Parameters.h:2011
The URISMeshParameters class is used to store paramaters for the 'Add_URIS_mesh' XML element.
Definition Parameters.h:2038
static const std::string xml_element_name_
Define the XML element name for mesh parameters.
Definition Parameters.h:2042
The VariableWallPropsParameters class stores parameters for variable wall properties for the CMM equa...
Definition Parameters.h:984
static const std::string xml_element_name_
The VariableWallPropsParameters class stores parameters for variable wall properties for the CMM equa...
Definition Parameters.h:987
The Vector template class is used for storing int and double data.
Definition Vector.h:26
The VectorParameter class template is used to store a named paramater and its vector of values as a b...
Definition Parameters.h:170
void set(const std::string &str_value)
Set the parameter value from a string.
Definition Parameters.h:224
void set(const std::string &name, bool required, const std::vector< T > &value)
Set the parameter name and value, and if it is required.
Definition Parameters.h:216
std::string svalue()
Get the string representation of the parameter value.
Definition Parameters.h:190
Parameters for coupling to the svOneDSolver (1D blood-flow solver).
Definition Parameters.h:722
Parameters for coupling to the svZeroDSolver (0D lumped-parameter solver).
Definition Parameters.h:673
struct to define a row of CANN model parameter table
Definition Parameters.h:278