1 if (runTime.outputTime() || topoChange)
13 sqrt((3.0/2.0)*magSqr(dev(sigma)))
16 Info<< "Max sigmaEq = " << max(sigmaEq).value()
19 volScalarField epsilonEq
29 sqrt((2.0/3.0)*magSqr(dev(epsilon)))
32 Info<< "Max epsilonEq = " << max(epsilonEq).value()
35 // Info << "\nCalculate maximal principal stress ..." << flush;
36 // // Principal stresses
37 // volVectorField sigmaMax
42 // runTime.timeName(),
45 // IOobject::AUTO_WRITE
48 // dimensionedVector("sigmaMax", dimPressure, vector::zero)
50 // vectorField& sigmaMaxI = sigmaMax.internalField();
52 // forAll (sigmaMaxI, cellI)
54 // vector eValues = eigenValues(sigma.internalField()[cellI]);
55 // tensor eVectors = eigenVectors(sigma.internalField()[cellI]);
57 // scalar maxEValue = 0;
61 // if (eValues[i] > maxEValue)
63 // maxEValue = eValues[i];
72 // sigmaMaxI[cellI] = eVectors.x()*eValues.x();
74 // else if (iMax == 1)
76 // sigmaMaxI[cellI] = eVectors.y()*eValues.y();
78 // else if (iMax == 2)
80 // sigmaMaxI[cellI] = eVectors.z()*eValues.z();
86 //- cohesive damage and cracking, and GII and GII
87 volScalarField damageAndCracks
98 dimensionedScalar("zero", dimless, 0.0),
99 calculatedFvPatchVectorField::typeName
112 dimensionedScalar("zero", dimless, 0.0),
113 calculatedFvPatchVectorField::typeName
126 dimensionedScalar("zero", dimless, 0.0),
127 calculatedFvPatchVectorField::typeName
129 forAll(U.boundaryField(), patchi)
131 // if(U.boundaryField()[patchi].type() == cohesiveLawMultiMatFvPatchVectorField::typeName)
132 if(U.boundaryField()[patchi].type() == solidCohesiveFvPatchVectorField::typeName)
134 // cohesiveLawMultiMatFvPatchVectorField& Upatch =
135 // refCast<cohesiveLawMultiMatFvPatchVectorField>(U.boundaryField()[patchi]);
136 solidCohesiveFvPatchVectorField& Upatch =
137 refCast<solidCohesiveFvPatchVectorField>(U.boundaryField()[patchi]);
139 GI.boundaryField()[patchi] = Upatch.GI();
140 GII.boundaryField()[patchi] = Upatch.GII();
141 damageAndCracks.boundaryField()[patchi] = Upatch.crackingAndDamage();
144 volScalarField GTotal("GTotal", GI + GII);