25 #ifndef MERCURYDPM_MERCURYOS_H
26 #define MERCURYDPM_MERCURYOS_H
104 return 1. / ((1 - v1 * v1) / E1 + (1 - v2 * v2) / E2);
112 double G1 = E1 / 2 / (1 + v1), G2 = E2 / 2 / (1 + v2);
113 return 1. / ((2 - v1) / G1 + (2 - v2) / G2);
127 double E1 = 1e9, E2 = 0.5e9, ES = 210e9;
128 double v1 = 0.2, v2 = 0.2, vS = 0.2;
150 double r11 = 0.5, r12 = 0.45, r1S = 0.4, r22 = 0.4, r2S = 0.4, rSS = 0.6;
152 double mu11 = 0.3, mu12 = 0.2, mu1S = 0.2, mu22 = 0.4, mu2S = 0.2, muSS = 0.5;
155 species.setEffectiveElasticModulusAndRestitutionCoefficient(E11, r11);
156 species.setEffectiveShearModulus(G11);
157 species.setSlidingFrictionCoefficient(mu11);
161 species.setEffectiveElasticModulusAndRestitutionCoefficient(E22, r22);
162 species.setEffectiveShearModulus(G22);
163 species.setSlidingFrictionCoefficient(mu22);
167 species.setEffectiveElasticModulusAndRestitutionCoefficient(ESS, rSS);
168 species.setEffectiveShearModulus(GSS);
169 species.setSlidingFrictionCoefficient(muSS);
174 m12->setEffectiveElasticModulusAndRestitutionCoefficient(E12, r12);
175 m12->setEffectiveShearModulus(G12);
176 m12->setSlidingFrictionCoefficient(mu12);
179 m1S->setEffectiveElasticModulusAndRestitutionCoefficient(E1S, r1S);
180 m1S->setEffectiveShearModulus(G1S);
181 m1S->setSlidingFrictionCoefficient(mu1S);
184 m2S->setEffectiveElasticModulusAndRestitutionCoefficient(E2S, r2S);
185 m2S->setEffectiveShearModulus(G2S);
186 m2S->setSlidingFrictionCoefficient(mu2S);
std::enable_if<!std::is_pointer< U >::value, U * >::type copyAndAddObject(const U &object)
Creates a copy of a Object and adds it to the BaseHandler.
Definition: BaseHandler.h:379
SpeciesHandler speciesHandler
A handler to that stores the species type i.e. LinearViscoelasticSpecies, etc.
Definition: DPMBase.h:1427
This adds on the hierarchical grid code for 3D problems.
Definition: Mercury3D.h:37
Definition: MercuryOS.h:37
static double getEffectiveElasticModulus(double E1, double v1, double E2, double v2)
Definition: MercuryOS.h:102
bool writeOutput() const
Definition: MercuryOS.h:56
static double getEffectiveShearModulus(double E1, double v1, double E2, double v2)
Definition: MercuryOS.h:110
bool test() const
Definition: MercuryOS.h:68
void setMaterialProperties()
Definition: MercuryOS.h:124
bool test_
Definition: MercuryOS.h:41
bool soft() const
Definition: MercuryOS.h:80
bool useMercuryWalls_
Definition: MercuryOS.h:43
void soft(bool soft)
Definition: MercuryOS.h:74
void useMercuryWalls(bool useMercuryWalls)
Definition: MercuryOS.h:86
void test(bool test)
Definition: MercuryOS.h:62
HertzianViscoelasticMindlinSpecies * m1
Definition: MercuryOS.h:118
bool soft_
Definition: MercuryOS.h:45
void writeOutput(bool writeOutput)
Definition: MercuryOS.h:50
HertzianViscoelasticMindlinSpecies * steel
Definition: MercuryOS.h:118
bool writeOutput_
Definition: MercuryOS.h:39
HertzianViscoelasticMindlinSpecies * m2
Definition: MercuryOS.h:118
bool useMercuryWalls() const
Definition: MercuryOS.h:92
void setDensity(Mdouble density)
Definition: ParticleSpecies.cc:108
std::enable_if<!std::is_pointer< typename U::MixedSpeciesType >::value, typename U::MixedSpeciesType * >::type getMixedObject(const U *S, const U *T)
Definition: SpeciesHandler.h:74
Contains material and contact force properties.
Definition: Species.h:35