void ElectricFieldWrap(const dTensor2& xpts, const dTensor2& NOT_USED_1, const dTensor2& NOT_USED_2, dTensor2& e, void* data) { ElectricField(xpts,e,data); }
// material electromechanical tangent modulus const dMatrixT& FSDEMatViscoT::E_IJK() { const dMatrixT& C = RightCauchyGreenDeformation(); const dArrayT& E = ElectricField(); double J = C.Det(); J = sqrt(J); /* call C function for electromechanical tangent modulus */ me_mixedmodulus_ab_visco(fParams.Pointer(), E.Pointer(), C.Pointer(), J, fTangentElectromechanical.Pointer()); return fTangentElectromechanical; }
// Electric displacement const dArrayT& FSDEMatViscoT::D_I() { const dMatrixT& C = RightCauchyGreenDeformation(); const dArrayT& E = ElectricField(); double J = C.Det(); J = sqrt(J); /* call C function for electric stress (i.e. electric displacement D_{I}) */ elec_pk2_visco(fParams.Pointer(), E.Pointer(), C.Pointer(), J, fElectricDisplacement.Pointer()); return fElectricDisplacement; }
// material mechanical tangent modulus const dMatrixT& FSDEMatViscoT::C_IJKL() { const dMatrixT& C = RightCauchyGreenDeformation(); const dArrayT& E = ElectricField(); double I1 = C(0,0)+C(1,1)+C(2,2); double J = C.Det(); J = sqrt(J); /* call C function for mechanical part of tangent modulus */ mech_tanmod_ab_visco(fParams.Pointer(), E.Pointer(), C.Pointer(), J, I1, fTangentMechanical.Pointer()); me_tanmod_ab_visco(fParams.Pointer(), E.Pointer(), C.Pointer(), J, fTangentMechanicalElec.Pointer()); fTangentMechanical+=fTangentMechanicalElec; return fTangentMechanical; }
// Second Piola-Kirchhoff stress (mechanical) const dSymMatrixT& FSDEMatViscoT::S_IJ() { const dMatrixT& C = RightCauchyGreenDeformation(); const dArrayT& E = ElectricField(); dMatrixT stress_temp(3); dMatrixT stress_temp2(3); double I1 = C(0,0)+C(1,1)+C(2,2); double J = C.Det(); J = sqrt(J); /* call C function for mechanical part of PK2 stress */ mech_pk2_ab_visco(fParams.Pointer(), E.Pointer(), C.Pointer(), J, I1, stress_temp.Pointer()); me_pk2_ab_visco(fParams.Pointer(), E.Pointer(), C.Pointer(), J, stress_temp2.Pointer()); stress_temp+=stress_temp2; fStress.FromMatrix(stress_temp); return fStress; }