35 #ifndef BASE_MATERIAL_H 36 #define BASE_MATERIAL_H 38 #include "base_data_package.h" 55 std::string material_type_name_;
56 std::string parameters_name_;
64 : material_type_name_(
"BaseMaterial"),
65 parameters_name_(
"LocalMaterialParameters"),
66 rho0_(rho0), base_particles_(nullptr),
67 reload_material_xml_engine_(
"xml_material",
"local_material_paramaters"){};
69 virtual ~BaseMaterial(){};
76 std::string MaterialType() {
return material_type_name_; }
77 std::string LocalParametersName() {
return parameters_name_; }
78 Real ReferenceDensity() {
return rho0_; };
80 virtual void writeToXmlForReloadLocalParameters(
const std::string &filefullpath);
81 virtual void readFromXmlForLocalParameters(
const std::string &filefullpath);
83 virtual BaseMaterial *ThisObjectPtr() {
return this; };
95 explicit Fluid(Real rho0, Real mu)
98 material_type_name_ =
"Fluid";
102 Real ReferenceViscosity() {
return mu_; };
103 virtual Real getPressure(Real rho) = 0;
104 virtual Real getPressure(Real rho, Real rho_e) {
return getPressure(rho); };
105 virtual Real DensityFromPressure(Real p) = 0;
106 virtual Real getSoundSpeed(Real p = 0.0, Real rho = 1.0) = 0;
107 virtual Fluid *ThisObjectPtr()
override {
return this; };
116 Solid(Real rho0, Real contact_stiffness, Real contact_friction = 0.0)
120 material_type_name_ =
"Solid";
122 explicit Solid(Real rho0) :
Solid(rho0, 1.0){};
128 virtual Solid *ThisObjectPtr()
override {
return this; };
137 #endif // BASE_MATERIAL_H Particles with essential (geometric and kinematic) data. There are three types of particles, all par...
Definition: base_particles.h:81
Real contact_stiffness_
Definition: base_material.h:128
std::array< StdVec< std::pair< std::string, size_t > >, 4 > ParticleVariableList
Definition: sph_data_containers.h:63
Real contact_friction_
Definition: base_material.h:132
Base of all materials.
Definition: base_material.h:52
Base class of all solid materials.
Definition: base_material.h:113
XML class for xml input and output, this is GUI of simbody xml parser.
Base class of all fluids.
Definition: base_material.h:89
virtual void assignBaseParticles(BaseParticles *base_particles)
Definition: base_material.cpp:13
Definition: xml_engine.h:56
Real mu_
Definition: base_material.h:92
Definition: solid_body_supplementary.cpp:9
Real rho0_
Definition: base_material.h:57