diff --git a/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.cpp b/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.cpp index 4a19620dba4f0ae9774c84b2d8e7bb9ec0130727..bbff665d12eb0c4c1d848562e87ca1a6624865f4 100644 --- a/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.cpp +++ b/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.cpp @@ -201,26 +201,26 @@ void mlawLinearElecMagTherMech::constitutive( SVector3 &dw_TdA, SVector3 & dw_TdB, SVector3 & dmechSourcedB, - SVector3 & w_AV, // Magnetic source vector field (T, grad V, F) - SVector3 & dw_AVdt, + SVector3 & sourceVectorField, // Magnetic source vector field (T, grad V, F) + SVector3 & dsourceVectorFielddt, STensor3 & dHdA, STensor3 & dHdB, STensor33 & dPdB, STensor33 & dHdF, - STensor33 & dw_AVdF, - SVector3 & mechFieldSource, // Electromagnetic force w_Mag + STensor33 & dsourceVectorFielddF, + SVector3 & mechFieldSource, // Electromagnetic force STensor3 & dmechFieldSourcedB, STensor33 & dmechFieldSourcedF, SVector3 & dHdT, STensor3 & dHdgradT, SVector3 & dHdV, STensor3 & dHdgradV, - SVector3 & dw_AVdT, - STensor3 & dw_AVdgradT, - SVector3 & dw_AVdV, - STensor3 & dw_AVdgradV, - STensor3 & dw_AVdA, - STensor3 & dw_AVdB, + SVector3 & dsourceVectorFielddT, + STensor3 & dsourceVectorFielddgradT, + SVector3 & dsourceVectorFielddV, + STensor3 & dsourceVectorFielddgradV, + STensor3 & dsourceVectorFielddA, + STensor3 & dsourceVectorFielddB, SVector3 & dmechFieldSourcedT, STensor3 & dmechFieldSourcedgradT, SVector3 & dmechFieldSourcedV, @@ -233,7 +233,7 @@ void mlawLinearElecMagTherMech::constitutive( dedgradT, dqdF, dedF, w_T, dw_Tdt, dw_Tdf, l10, l20, k10, k20, dl10dT, dl20dT, dk10dT, dk20dT, dl10dv, dl20dv, dk10dv, dk20dv, dl10dF, dl20dF, dk10dF, dk20dF, fluxjy, djydV, djydgradV, djydT, djydgradT, djydF, djydgradVdT, djydgradVdV, djydgradVdF, djydgradTdT, djydgradTdV, djydgradTdF, stiff); - // Assemble the coefficient matrix Z as seen in eq 4.28 in Lina's thesis + // here magnetic, electric field and temp dependent STensorOperation::zero(H);STensorOperation::zero(dBdT); STensorOperation::zero(dBdGradT); STensorOperation::zero(dBdV); @@ -241,7 +241,10 @@ void mlawLinearElecMagTherMech::constitutive( STensorOperation::zero(dfluxDdA); STensorOperation::zero(dfluxTdB); STensorOperation::zero(dfluxDdB); STensorOperation::zero(dw_TdA); STensorOperation::zero(dw_TdB); STensorOperation::zero(dHdA); STensorOperation::zero(dHdB); STensorOperation::zero(dPdB); STensorOperation::zero(dHdF); STensorOperation::zero(dHdT); STensorOperation::zero(dHdgradT); STensorOperation::zero(dHdV); - STensorOperation::zero(dHdgradV); + STensorOperation::zero(dHdgradV);STensorOperation::zero(sourceVectorField);STensorOperation::zero(dsourceVectorFielddT); + STensorOperation::zero(dsourceVectorFielddgradT); STensorOperation::zero(dsourceVectorFielddV);STensorOperation::zero(dsourceVectorFielddgradV); + STensorOperation::zero(dsourceVectorFielddA);STensorOperation::zero(dsourceVectorFielddB); + STensorOperation::zero(dsourceVectorFielddt);STensorOperation::zero(dsourceVectorFielddF); static STensor3 dldT,dkdT; double dseebeckdT = 0.0; @@ -261,16 +264,13 @@ void mlawLinearElecMagTherMech::constitutive( } // Add contribution from j_p and j_m too??? - // need to figure out contribution of js0 - // only for inductor region const double ctime = getTime(); const double dh = getTimeStep(); double invdh; - if (dh <= 0.0) - { + if (dh < 0.0) + Msg::Error("Negative time step size in mlawEMTM::constitutive()"); + else if (dh == 0.0) invdh = 0.0; - //Msg::Error("Negative time step size in mlawEMTM::constitutive()"); - } else invdh = 1.0/dh; // phase angle for sin wave function @@ -289,7 +289,7 @@ void mlawLinearElecMagTherMech::constitutive( for(unsigned int i = 0; i < 3; ++i) { - w_AV(i) = 0.0; + sourceVectorField(i) = 0.0; if(!isInductor()) { @@ -320,14 +320,13 @@ void mlawLinearElecMagTherMech::constitutive( } } - // Doubtfull - w_AV(i) = -fluxD(i) ;//- js0(i); + sourceVectorField(i) = -fluxD(i) ;//- js0(i); // For test with unit cube to check // interpolation of curlVals //js0(0) = 1.0; //js0(1) = js0(2) = 0.0; - //w_AV = -js0; + //sourceVectorField = -js0; } for (unsigned int m = 0; m < 3; ++m) @@ -346,9 +345,9 @@ void mlawLinearElecMagTherMech::constitutive( dHdgradT(m,n) += 0.0; dHdgradV(m,n) += 0.0; - dw_AVdB(m,n) += 0.0; - dw_AVdgradV(m,n) += _l0(m,n); - dw_AVdgradT(m,n) += _seebeck * _l0(m,n); + dsourceVectorFielddB(m,n) += 0.0; + dsourceVectorFielddgradV(m,n) += _l0(m,n); + dsourceVectorFielddgradT(m,n) += _seebeck * _l0(m,n); } } @@ -356,9 +355,9 @@ void mlawLinearElecMagTherMech::constitutive( { for (unsigned int k = 0; k < 3; ++k) { - dw_AVdV(l) += 0.0; - dw_AVdT(l) += dseebeckdT * _l0(l,k) * gradT(k); - dw_AVdA(l,k) += _l0(l,k) * invdh; + dsourceVectorFielddV(l) += 0.0; + dsourceVectorFielddT(l) += dseebeckdT * _l0(l,k) * gradT(k); + dsourceVectorFielddA(l,k) += _l0(l,k) * invdh; dedgradT(l,k) += 0.0; dedgradV(l,k) += 0.0; @@ -391,10 +390,10 @@ void mlawLinearElecMagTherMech::constitutive( STensorOperation::zero(dBdA); STensorOperation::zero(dw_TdB); STensorOperation::zero(dmechSourcedB); - STensorOperation::zero(dw_AVdt); + STensorOperation::zero(dsourceVectorFielddt); STensorOperation::zero(dPdB); STensorOperation::zero(dHdF); - STensorOperation::zero(dw_AVdF); + STensorOperation::zero(dsourceVectorFielddF); STensorOperation::zero(mechFieldSource); STensorOperation::zero(dmechFieldSourcedB); STensorOperation::zero(dmechFieldSourcedF); diff --git a/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.h b/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.h index 217d73da4a004d9924e2972b819c2c671d4a16d9..56c1c123ab8ae58262ee2b8bee204cb6e11a69a2 100644 --- a/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.h +++ b/NonLinearSolver/materialLaw/mlawLinearElecMagTherMech.h @@ -148,26 +148,26 @@ class mlawLinearElecMagTherMech : public mlawLinearElecTherMech SVector3 &dw_TdA, SVector3 & dw_TdB, SVector3 & dmechSourcedB, - SVector3 & w_AV, // Magnetic source vector field (T, grad V, F) - SVector3 & dw_AVdt, + SVector3 & sourceVectorField, // Magnetic source vector field (T, grad V, F) + SVector3 & dsourceVectorFielddt, STensor3 & dHdA, STensor3 & dHdB, STensor33 & dPdB, STensor33 & dHdF, - STensor33 & dw_AVdF, - SVector3 & mechFieldSource, // Electromagnetic force w_Mag + STensor33 & dsourceVectorFielddF, + SVector3 & mechFieldSource, // Electromagnetic force STensor3 & dmechFieldSourcedB, STensor33 & dmechFieldSourcedF, SVector3 & dHdT, STensor3 & dHdgradT, SVector3 & dHdV, STensor3 & dHdgradV, - SVector3 & dw_AVdT, - STensor3 & dw_AVdgradT, - SVector3 & dw_AVdV, - STensor3 & dw_AVdgradV, - STensor3 & dw_AVdA, - STensor3 & dw_AVdB, + SVector3 & dsourceVectorFielddT, + STensor3 & dsourceVectorFielddgradT, + SVector3 & dsourceVectorFielddV, + STensor3 & dsourceVectorFielddgradV, + STensor3 & dsourceVectorFielddA, + STensor3 & dsourceVectorFielddB, SVector3 & dmechFieldSourcedT, STensor3 & dmechFieldSourcedgradT, SVector3 & dmechFieldSourcedV, diff --git a/dG3D/src/FractureCohesiveDG3DIPVariable.h b/dG3D/src/FractureCohesiveDG3DIPVariable.h index fbca350aaf7a34ada8effa3a011cb84c69bcfe3a..bc81eac4b98a5da0afe0c312fd7062f198a82f80 100644 --- a/dG3D/src/FractureCohesiveDG3DIPVariable.h +++ b/dG3D/src/FractureCohesiveDG3DIPVariable.h @@ -246,6 +246,8 @@ class FractureCohesive3DIPVariable : public IPVariable2ForFracture<dG3DIPVariabl virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddGradExtraDofField() { return _ipvbulk->getRefTodSourceVectorFielddGradExtraDofField();} virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorCurl() const { return _ipvbulk->getConstRefTodSourceVectorFielddVectorCurl();} virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorCurl() { return _ipvbulk->getRefTodSourceVectorFielddVectorCurl();} + virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorPotential() const { return _ipvbulk->getConstRefTodSourceVectorFielddVectorPotential();} + virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorPotential() { return _ipvbulk->getRefTodSourceVectorFielddVectorPotential();} virtual const std::vector< std::vector< STensor3 > > & getConstRefTodMechanicalFieldSourcedVectorCurl() const { return _ipvbulk->getConstRefTodMechanicalFieldSourcedVectorCurl();} virtual std::vector< std::vector< STensor3 > > & getRefTodMechanicalFieldSourcedVectorCurl() { return _ipvbulk->getRefTodMechanicalFieldSourcedVectorCurl();} virtual const std::vector< STensor33 > & getConstRefTodSourceVectorFielddF() const { return _ipvbulk->getConstRefTodSourceVectorFielddF();} diff --git a/dG3D/src/dG3DIPVariable.h b/dG3D/src/dG3DIPVariable.h index 67f9ea6913d26c9fc546a65e60d14346be33cefd..0c4bcdebe6b9aed0e47e6b0369e41a8009c7278a 100644 --- a/dG3D/src/dG3DIPVariable.h +++ b/dG3D/src/dG3DIPVariable.h @@ -312,6 +312,8 @@ class dG3DIPVariableBase : public ipFiniteStrain virtual SVector3 & getRefTodSourceVectorFielddt(const int idex)=0; virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorCurl() const=0; virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorCurl()=0; + virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorPotential() const=0; + virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorPotential()=0; //Energy Conjugated Field (fT & fv) @@ -468,10 +470,10 @@ class constitutiveCurlData{ std::vector< SVector3 > vectorCurl; // Curl A := B, magnetic induction std::vector< SVector3 > vectorField; // Vector magnetic field H std::vector< SVector3 > inductorSourceVectorField; // current density applied in inductor js0 - std::vector< SVector3 > sourceVectorField; // Vector magnetic source (T, grad V, F) w_AV + std::vector< SVector3 > sourceVectorField; // Vector magnetic field source (T, grad V, F) std::vector< SVector3 > dSourceVectorFielddt; // time derivative - std::vector< std::vector< STensor3 > > dSourceVectorFielddVectorCurl; // dw_AVdB - std::vector< std::vector< STensor3 > > dSourceVectorFielddVectorPotential; // dw_AVdA + std::vector< std::vector< STensor3 > > dSourceVectorFielddVectorCurl; + std::vector< std::vector< STensor3 > > dSourceVectorFielddVectorPotential; std::vector<std::vector< STensor3 > > dVectorFielddVectorPotential; std::vector<std::vector< STensor3 > > dVectorFielddVectorCurl; @@ -482,16 +484,16 @@ class constitutiveCurlData{ std::vector< STensor33 > dSourceVectorFielddF; std::vector< STensor33 > dMechanicalFieldSourcedF; - std::vector< SVector3 > mechanicalFieldSource; // EM force proportional to freq w_Mag (V, B, F) + std::vector< SVector3 > mechanicalFieldSource; // EM force proportional to freq (V, B, F) std::vector< std::vector< STensor3 > > dMechanicalFieldSourcedVectorCurl; //coupling with extraDof std::vector<std::vector< SVector3 > > dVectorFielddExtraDofField; std::vector<std::vector< STensor3 > > dVectorFielddGradExtraDofField; - std::vector< std::vector< SVector3 > > dSourceVectorFielddExtraDofField; // dw_AV/dT dw_AV/dV - std::vector< std::vector< STensor3 > > dSourceVectorFielddGradExtraDofField; // dw_AV/dGradT dw_AV/dGradV - std::vector< std::vector< SVector3 > > dMechanicalFieldSourcedExtraDofField; // dw_M/dV dw_M/dT - std::vector< std::vector< STensor3 > > dMechanicalFieldSourcedGradExtraDofField; // dw_M/dGradV dw_M/dGradT + std::vector< std::vector< SVector3 > > dSourceVectorFielddExtraDofField; + std::vector< std::vector< STensor3 > > dSourceVectorFielddGradExtraDofField; + std::vector< std::vector< SVector3 > > dMechanicalFieldSourcedExtraDofField; + std::vector< std::vector< STensor3 > > dMechanicalFieldSourcedGradExtraDofField; //coupling with nonLocal std::vector<std::vector< SVector3 > > dVectorFielddNonLocalVariable; @@ -3899,7 +3901,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodFluxdVectorCurl()[1][0]; } - // w_AV virtual const SVector3 & getConstRefTosourceVectorField() const { return getConstRefToSourceVectorField(0); @@ -3909,7 +3910,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefToSourceVectorField(0); } - // dw_AVdt + // dsourceVectorFielddt virtual const SVector3 & getConstRefTodsourceVectorFielddt() const { return getConstRefTodSourceVectorFielddt(0); @@ -3919,7 +3920,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodSourceVectorFielddt(0); } - // dw_AVdA + // dsourceVectorFielddA virtual const STensor3 & getConstRefTodSourceVectorFielddMagneticVectorPotential() const { return getConstRefTodSourceVectorFielddVectorPotential()[0][0]; @@ -3929,7 +3930,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodSourceVectorFielddVectorPotential()[0][0]; } - // dw_AVdB + // dsourceVectorFielddB virtual const STensor3 & getConstRefTodSourceVectorFielddMagneticVectorCurl() const { return getConstRefTodSourceVectorFielddVectorCurl()[0][0]; @@ -3939,7 +3940,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodSourceVectorFielddVectorCurl()[0][0]; } - // w_Mag virtual const SVector3 & getConstRefTomechanicalFieldSource() const { return getConstRefToMechanicalFieldSource(0); @@ -3949,7 +3949,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefToMechanicalFieldSource(0); } - // dw_AVdF + // dsourceVectorFielddF virtual const STensor33 & getConstRefTodsourceVectorFielddF() const { return getConstRefTodSourceVectorFielddF()[0]; @@ -3959,7 +3959,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodSourceVectorFielddF()[0]; } - // dw_AVdT + // dsourceVectorFielddT virtual const SVector3 & getConstRefTodSourceVectorFielddT() const { return getConstRefTodSourceVectorFielddExtraDofField()[0][0]; @@ -3969,7 +3969,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodSourceVectorFielddExtraDofField()[0][0]; } - // dw_AVdGradT + // dsourceVectorFielddGradT virtual const STensor3 & getConstRefTodSourceVectorFielddGradT() const { return getConstRefTodSourceVectorFielddGradExtraDofField()[0][0]; @@ -3979,7 +3979,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodSourceVectorFielddGradExtraDofField()[0][0]; } - // dw_AVdV + // dsourceVectorFielddV virtual const SVector3 & getConstRefTodSourceVectorFielddV() const { return getConstRefTodSourceVectorFielddExtraDofField()[0][1]; @@ -3989,7 +3989,7 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodSourceVectorFielddExtraDofField()[0][1]; } - // dw_AVdGradV + // dsourceVectorFielddGradV virtual const STensor3 & getConstRefTodSourceVectorFielddGradV() const { return getConstRefTodSourceVectorFielddGradExtraDofField()[0][1]; @@ -3999,7 +3999,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodSourceVectorFielddGradExtraDofField()[0][1]; } - // dw_MagdF virtual const STensor33 & getConstRefTodmechanicalFieldSourcedF() const { return getConstRefTodMechanicalFieldSourcedF()[0]; @@ -4009,7 +4008,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodMechanicalFieldSourcedF()[0]; } - // dw_MagdT virtual const SVector3 & getConstRefTodMechanicalFieldSourcedT() const { return getConstRefTodMechanicalFieldSourcedExtraDofField()[0][0]; @@ -4019,7 +4017,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodMechanicalFieldSourcedExtraDofField()[0][0]; } - // dw_MagdGradT virtual const STensor3 & getConstRefTodMechanicalFieldSourcedGradT() const { return getConstRefTodMechanicalFieldSourcedGradExtraDofField()[0][0]; @@ -4029,7 +4026,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodMechanicalFieldSourcedGradExtraDofField()[0][0]; } - // dw_MagdV virtual const SVector3 & getConstRefTodMechanicalFieldSourcedV() const { return getConstRefTodMechanicalFieldSourcedExtraDofField()[0][1]; @@ -4039,7 +4035,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodMechanicalFieldSourcedExtraDofField()[0][1]; } - // dw_MagdGradV virtual const STensor3 & getConstRefTodMechanicalFieldSourcedGradV() const { return getConstRefTodMechanicalFieldSourcedGradExtraDofField()[0][1]; @@ -4049,7 +4044,6 @@ class ElecMagTherMechDG3DIPVariableBase : public dG3DIPVariable return getRefTodMechanicalFieldSourcedGradExtraDofField()[0][1]; } - // dw_MagdB virtual const STensor3 & getConstRefTodMechanicalFieldSourcedMagneticVectorCurl() const { return getConstRefTodMechanicalFieldSourcedVectorCurl()[0][0]; diff --git a/dG3D/src/dG3DMaterialLaw.cpp b/dG3D/src/dG3DMaterialLaw.cpp index 0ce59746ce3b3c992024f08757f6222011e5841c..8a848f18656ff1ebf9795814a2a226725a56264f 100644 --- a/dG3D/src/dG3DMaterialLaw.cpp +++ b/dG3D/src/dG3DMaterialLaw.cpp @@ -5593,26 +5593,26 @@ const bool checkfrac, const bool dTangent) SVector3 & dw_TdA = ipvcur->getRefTodFieldSourcedMagneticVectorPotential(); SVector3 & dw_TdB = ipvcur->getRefTodFieldSourcedMagneticVectorCurl(); SVector3 & dmechSourcedB = ipvcur->getRefTodMechanicalSourcedMagneticVectorCurl(); - SVector3 & w_AV = ipvcur->getRefTosourceVectorField(); // Magnetic source vector field (T, grad V, F) - SVector3 & dw_AVdt = ipvcur->getRefTodsourceVectorFielddt(); + SVector3 & sourceVectorField = ipvcur->getRefTosourceVectorField(); // Magnetic source vector field (T, grad V, F) + SVector3 & dsourceVectorFielddt = ipvcur->getRefTodsourceVectorFielddt(); STensor3 & dHdA = ipvcur->getRefTodMagneticFielddMagneticVectorPotential(); STensor3 & dHdB = ipvcur->getRefTodMagneticFielddMagneticVectorCurl(); STensor33 & dPdB = ipvcur->getRefTodPdMagneticVectorCurl(); STensor33 & dHdF = ipvcur->getRefTodMagneticFielddF(); - STensor33 & dw_AVdF = ipvcur->getRefTodsourceVectorFielddF(); - SVector3 & mechFieldSource = ipvcur->getRefTomechanicalFieldSource(); // Electromagnetic force w_Mag + STensor33 & dsourceVectorFielddF = ipvcur->getRefTodsourceVectorFielddF(); + SVector3 & mechFieldSource = ipvcur->getRefTomechanicalFieldSource(); // Electromagnetic force STensor3 & dmechFieldSourcedB = ipvcur->getRefTodMechanicalFieldSourcedMagneticVectorCurl(); STensor33 & dmechFieldSourcedF = ipvcur->getRefTodmechanicalFieldSourcedF(); SVector3 & dHdT = ipvcur->getRefTodMagneticFielddT(); STensor3 & dHdgradT = ipvcur->getRefTodMagneticFielddGradT(); SVector3 & dHdV = ipvcur->getRefTodMagneticFielddV(); STensor3 & dHdgradV = ipvcur->getRefTodMagneticFielddGradV(); - SVector3 & dw_AVdT = ipvcur->getRefTodSourceVectorFielddT(); - STensor3 & dw_AVdgradT = ipvcur->getRefTodSourceVectorFielddGradT(); - SVector3 & dw_AVdV = ipvcur->getRefTodSourceVectorFielddV(); - STensor3 & dw_AVdgradV = ipvcur->getRefTodSourceVectorFielddGradV(); - STensor3 & dw_AVdA = ipvcur->getRefTodSourceVectorFielddMagneticVectorPotential(); - STensor3 & dw_AVdB = ipvcur->getRefTodSourceVectorFielddMagneticVectorCurl(); + SVector3 & dsourceVectorFielddT = ipvcur->getRefTodSourceVectorFielddT(); + STensor3 & dsourceVectorFielddgradT = ipvcur->getRefTodSourceVectorFielddGradT(); + SVector3 & dsourceVectorFielddV = ipvcur->getRefTodSourceVectorFielddV(); + STensor3 & dsourceVectorFielddgradV = ipvcur->getRefTodSourceVectorFielddGradV(); + STensor3 & dsourceVectorFielddA = ipvcur->getRefTodSourceVectorFielddMagneticVectorPotential(); + STensor3 & dsourceVectorFielddB = ipvcur->getRefTodSourceVectorFielddMagneticVectorCurl(); SVector3 & dmechFieldSourcedT = ipvcur->getRefTodMechanicalFieldSourcedT(); STensor3 & dmechFieldSourcedgradT = ipvcur->getRefTodMechanicalFieldSourcedGradT(); SVector3 & dmechFieldSourcedV = ipvcur->getRefTodMechanicalFieldSourcedV(); @@ -5623,10 +5623,10 @@ const bool checkfrac, const bool dTangent) w_T,dw_TdT,dw_TdV,dw_TdF,linearl10,linearl20,lineark10,lineark20,dl10dT,dl20dT,dk10dT,dk20dT,dl10dv, dl20dv,dk10dv,dk20dv,dl10dF,dl20dF,dk10dF,dk20dF,fluxjy,djydV,djydgradV,djydT,djydgradT, djydF,djydA, djydB, djydgradVdT,djydgradVdV,djydgradVdF,djydgradTdT,djydgradTdV,djydgradTdF,stiff, - A0, An, B, H, js0, dBdT, dBdGradT, dBdV, dBdGradV, dBdF, dBdA, dfluxTdA, dfluxDdA, dfluxTdB, dfluxDdB, dw_TdA, dw_TdB, dmechSourcedB, w_AV, dw_AVdt, - dHdA, dHdB, dPdB, dHdF, dw_AVdF, mechFieldSource, dmechFieldSourcedB, dmechFieldSourcedF, - dHdT, dHdgradT, dHdV, dHdgradV, dw_AVdT, dw_AVdgradT, dw_AVdV, dw_AVdgradV, dw_AVdA, dw_AVdB, - dmechFieldSourcedT, dmechFieldSourcedgradT, dmechFieldSourcedV, dmechFieldSourcedgradV); + A0, An, B, H, js0, dBdT, dBdGradT, dBdV, dBdGradV, dBdF, dBdA, dfluxTdA, dfluxDdA, dfluxTdB, dfluxDdB, dw_TdA, dw_TdB, dmechSourcedB, sourceVectorField, + dsourceVectorFielddt, dHdA, dHdB, dPdB, dHdF, dsourceVectorFielddF, mechFieldSource, dmechFieldSourcedB, dmechFieldSourcedF, + dHdT, dHdgradT, dHdV, dHdgradV, dsourceVectorFielddT, dsourceVectorFielddgradT, dsourceVectorFielddV, dsourceVectorFielddgradV, dsourceVectorFielddA, + dsourceVectorFielddB, dmechFieldSourcedT, dmechFieldSourcedgradT, dmechFieldSourcedV, dmechFieldSourcedgradV); ipvcur->setRefToDGElasticTangentModuli(this->elasticStiffness); } @@ -5839,26 +5839,26 @@ const bool checkfrac, const bool dTangent) SVector3 & dw_TdA = ipvcur->getRefTodFieldSourcedMagneticVectorPotential(); SVector3 & dw_TdB = ipvcur->getRefTodFieldSourcedMagneticVectorCurl(); SVector3 & dmechSourcedB = ipvcur->getRefTodMechanicalSourcedMagneticVectorCurl(); - SVector3 & w_AV = ipvcur->getRefTosourceVectorField(); // Magnetic source vector field (T, grad V, F) - SVector3 & dw_AVdt = ipvcur->getRefTodsourceVectorFielddt(); + SVector3 & sourceVectorField = ipvcur->getRefTosourceVectorField(); // Magnetic source vector field (T, grad V, F) + SVector3 & dsourceVectorFielddt = ipvcur->getRefTodsourceVectorFielddt(); STensor3 & dHdA = ipvcur->getRefTodMagneticFielddMagneticVectorPotential(); STensor3 & dHdB = ipvcur->getRefTodMagneticFielddMagneticVectorCurl(); STensor33 & dPdB = ipvcur->getRefTodPdMagneticVectorCurl(); STensor33 & dHdF = ipvcur->getRefTodMagneticFielddF(); - STensor33 & dw_AVdF = ipvcur->getRefTodsourceVectorFielddF(); - SVector3 & mechFieldSource = ipvcur->getRefTomechanicalFieldSource(); // Electromagnetic force w_Mag + STensor33 & dsourceVectorFielddF = ipvcur->getRefTodsourceVectorFielddF(); + SVector3 & mechFieldSource = ipvcur->getRefTomechanicalFieldSource(); // Electromagnetic force STensor3 & dmechFieldSourcedB = ipvcur->getRefTodMechanicalFieldSourcedMagneticVectorCurl(); STensor33 & dmechFieldSourcedF = ipvcur->getRefTodmechanicalFieldSourcedF(); SVector3 & dHdT = ipvcur->getRefTodMagneticFielddT(); STensor3 & dHdgradT = ipvcur->getRefTodMagneticFielddGradT(); SVector3 & dHdV = ipvcur->getRefTodMagneticFielddV(); STensor3 & dHdgradV = ipvcur->getRefTodMagneticFielddGradV(); - SVector3 & dw_AVdT = ipvcur->getRefTodSourceVectorFielddT(); - STensor3 & dw_AVdgradT = ipvcur->getRefTodSourceVectorFielddGradT(); - SVector3 & dw_AVdV = ipvcur->getRefTodSourceVectorFielddV(); - STensor3 & dw_AVdgradV = ipvcur->getRefTodSourceVectorFielddGradV(); - STensor3 & dw_AVdA = ipvcur->getRefTodSourceVectorFielddMagneticVectorPotential(); - STensor3 & dw_AVdB = ipvcur->getRefTodSourceVectorFielddMagneticVectorCurl(); + SVector3 & dsourceVectorFielddT = ipvcur->getRefTodSourceVectorFielddT(); + STensor3 & dsourceVectorFielddgradT = ipvcur->getRefTodSourceVectorFielddGradT(); + SVector3 & dsourceVectorFielddV = ipvcur->getRefTodSourceVectorFielddV(); + STensor3 & dsourceVectorFielddgradV = ipvcur->getRefTodSourceVectorFielddGradV(); + STensor3 & dsourceVectorFielddA = ipvcur->getRefTodSourceVectorFielddMagneticVectorPotential(); + STensor3 & dsourceVectorFielddB = ipvcur->getRefTodSourceVectorFielddMagneticVectorCurl(); SVector3 & dmechFieldSourcedT = ipvcur->getRefTodMechanicalFieldSourcedT(); STensor3 & dmechFieldSourcedgradT = ipvcur->getRefTodMechanicalFieldSourcedGradT(); SVector3 & dmechFieldSourcedV = ipvcur->getRefTodMechanicalFieldSourcedV(); @@ -5869,10 +5869,10 @@ const bool checkfrac, const bool dTangent) w_T,dw_TdT,dw_TdV,dw_TdF,linearl10,linearl20,lineark10,lineark20,dl10dT,dl20dT,dk10dT,dk20dT,dl10dv, dl20dv,dk10dv,dk20dv,dl10dF,dl20dF,dk10dF,dk20dF,fluxjy,djydV,djydgradV,djydT,djydgradT, djydF, djydA, djydB, djydgradVdT,djydgradVdV,djydgradVdF,djydgradTdT,djydgradTdV,djydgradTdF,stiff, - A0, An, B, H, js0, dBdT, dBdGradT, dBdV, dBdGradV, dBdF, dBdA, dfluxTdA, dfluxDdA, dfluxTdB, dfluxDdB, dw_TdA, dw_TdB, dmechSourcedB, w_AV, dw_AVdt, - dHdA, dHdB, dPdB, dHdF, dw_AVdF, mechFieldSource, dmechFieldSourcedB, dmechFieldSourcedF, - dHdT, dHdgradT, dHdV, dHdgradV, dw_AVdT, dw_AVdgradT, dw_AVdV, dw_AVdgradV, dw_AVdA, dw_AVdB, - dmechFieldSourcedT, dmechFieldSourcedgradT, dmechFieldSourcedV, dmechFieldSourcedgradV); + A0, An, B, H, js0, dBdT, dBdGradT, dBdV, dBdGradV, dBdF, dBdA, dfluxTdA, dfluxDdA, dfluxTdB, dfluxDdB, dw_TdA, dw_TdB, dmechSourcedB, + sourceVectorField, dsourceVectorFielddt, dHdA, dHdB, dPdB, dHdF, dsourceVectorFielddF, mechFieldSource, dmechFieldSourcedB, dmechFieldSourcedF, + dHdT, dHdgradT, dHdV, dHdgradV, dsourceVectorFielddT, dsourceVectorFielddgradT, dsourceVectorFielddV, dsourceVectorFielddgradV, dsourceVectorFielddA, + dsourceVectorFielddB, dmechFieldSourcedT, dmechFieldSourcedgradT, dmechFieldSourcedV, dmechFieldSourcedgradV); ipvcur->setRefToDGElasticTangentModuli(this->elasticStiffness); } diff --git a/dG3D/src/nonLocalDamageDG3DIPVariable.h b/dG3D/src/nonLocalDamageDG3DIPVariable.h index e880ea25b82569531b1594beccec52ef0256f03d..62d7e8e6202bb20abc80444dbd22548d4569408a 100644 --- a/dG3D/src/nonLocalDamageDG3DIPVariable.h +++ b/dG3D/src/nonLocalDamageDG3DIPVariable.h @@ -856,6 +856,18 @@ virtual SVector3 & getRefToInductorSourceVectorField(const int idex) Msg::Error("getRefTodSourceVectorFielddVectorCurl() : _constitutiveCurlData not created"); return _constitutiveCurlData->dSourceVectorFielddVectorCurl; } + virtual const std::vector< std::vector< STensor3 > > & getConstRefTodSourceVectorFielddVectorPotential() const + { + if (_constitutiveCurlData == NULL) + Msg::Error("getConstRefTodSourceVectorFielddVectorPotential() : _constitutiveCurlData not created"); + return _constitutiveCurlData->dSourceVectorFielddVectorPotential; + } + virtual std::vector< std::vector< STensor3 > > & getRefTodSourceVectorFielddVectorPotential() + { + if (_constitutiveCurlData == NULL) + Msg::Error("getRefTodSourceVectorFielddVectorPotential() : _constitutiveCurlData not created"); + return _constitutiveCurlData->dSourceVectorFielddVectorPotential; + } virtual const std::vector< std::vector< STensor3 > > & getConstRefTodMechanicalFieldSourcedVectorCurl() const { if (_constitutiveCurlData == NULL)