Skip to content
Snippets Groups Projects
Commit b888de39 authored by Patrick Jaap's avatar Patrick Jaap
Browse files

Make mooneyrivlindensity.hh beautiful again

parent c3278e01
No related branches found
No related tags found
1 merge request!47Make mooneyrivlindensity.hh beautiful again
Pipeline #30434 passed
...@@ -25,7 +25,9 @@ public: ...@@ -25,7 +25,9 @@ public:
mooneyrivlin_a = parameters.get<double>("mooneyrivlin_a"); mooneyrivlin_a = parameters.get<double>("mooneyrivlin_a");
mooneyrivlin_b = parameters.get<double>("mooneyrivlin_b"); mooneyrivlin_b = parameters.get<double>("mooneyrivlin_b");
mooneyrivlin_c = parameters.get<double>("mooneyrivlin_c"); mooneyrivlin_c = parameters.get<double>("mooneyrivlin_c");
} else if (mooneyrivlin_energy == "log" or mooneyrivlin_energy == "square") { }
else if (mooneyrivlin_energy == "log" or mooneyrivlin_energy == "square")
{
mooneyrivlin_10 = parameters.get<double>("mooneyrivlin_10"); mooneyrivlin_10 = parameters.get<double>("mooneyrivlin_10");
mooneyrivlin_01 = parameters.get<double>("mooneyrivlin_01"); mooneyrivlin_01 = parameters.get<double>("mooneyrivlin_01");
mooneyrivlin_20 = parameters.get<double>("mooneyrivlin_20"); mooneyrivlin_20 = parameters.get<double>("mooneyrivlin_20");
...@@ -36,7 +38,9 @@ public: ...@@ -36,7 +38,9 @@ public:
mooneyrivlin_21 = parameters.get<double>("mooneyrivlin_21"); mooneyrivlin_21 = parameters.get<double>("mooneyrivlin_21");
mooneyrivlin_12 = parameters.get<double>("mooneyrivlin_12"); mooneyrivlin_12 = parameters.get<double>("mooneyrivlin_12");
mooneyrivlin_k = parameters.get<double>("mooneyrivlin_k"); mooneyrivlin_k = parameters.get<double>("mooneyrivlin_k");
} else { }
else
{
DUNE_THROW(Exception, "Error: Selected mooneyrivlin implementation (" << mooneyrivlin_energy << ") not available!"); DUNE_THROW(Exception, "Error: Selected mooneyrivlin implementation (" << mooneyrivlin_energy << ") not available!");
} }
} }
...@@ -97,7 +101,10 @@ public: ...@@ -97,7 +101,10 @@ public:
field_type frobeinusNormFInverseSquared = gradientInverse.frobenius_norm2(); field_type frobeinusNormFInverseSquared = gradientInverse.frobenius_norm2();
using std::log; using std::log;
return mooneyrivlin_a*frobeniusNormFsquared + mooneyrivlin_b*frobeinusNormFInverseSquared*detF + mooneyrivlin_c*detF*detF - ((dim-1)*mooneyrivlin_a + mooneyrivlin_b + 2*mooneyrivlin_c)*log(detF); return mooneyrivlin_a*frobeniusNormFsquared + mooneyrivlin_b*frobeinusNormFInverseSquared*detF + mooneyrivlin_c*detF*detF - ((dim-1)*mooneyrivlin_a + mooneyrivlin_b + 2*mooneyrivlin_c)*log(detF);
} else { // mooneyrivlin_energy is "log" or "square" }
else
{
// mooneyrivlin_energy is "log" or "square"
field_type a = pow(detF, 2.0/dim); field_type a = pow(detF, 2.0/dim);
field_type invariant1Minus3 = frobeniusNormFsquared/a - 3; field_type invariant1Minus3 = frobeniusNormFsquared/a - 3;
field_type secondInvariantOfC = 0; field_type secondInvariantOfC = 0;
...@@ -114,11 +121,15 @@ public: ...@@ -114,11 +121,15 @@ public:
mooneyrivlin_21 * invariant1Minus3 * invariant1Minus3 * invariant2Minus3 + mooneyrivlin_21 * invariant1Minus3 * invariant1Minus3 * invariant2Minus3 +
mooneyrivlin_12 * invariant1Minus3 * invariant2Minus3 * invariant2Minus3 + mooneyrivlin_12 * invariant1Minus3 * invariant2Minus3 * invariant2Minus3 +
mooneyrivlin_03 * invariant2Minus3 * invariant2Minus3 * invariant2Minus3; mooneyrivlin_03 * invariant2Minus3 * invariant2Minus3 * invariant2Minus3;
if (mooneyrivlin_energy == "log") { if (mooneyrivlin_energy == "log")
{
using std::log; using std::log;
field_type logDetF = log(detF); field_type logDetF = log(detF);
return strainEnergy + 0.5 * mooneyrivlin_k* logDetF * logDetF; return strainEnergy + 0.5 * mooneyrivlin_k* logDetF * logDetF;
} else { //mooneyrivlin_energy is "square" }
else
{
//mooneyrivlin_energy is "square"
field_type detFMinus1 = detF - 1; field_type detFMinus1 = detF - 1;
return strainEnergy + mooneyrivlin_k* detFMinus1 * detFMinus1; return strainEnergy + mooneyrivlin_k* detFMinus1 * detFMinus1;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment