diff --git a/dG3D/src/dG3DMaterialLaw.cpp b/dG3D/src/dG3DMaterialLaw.cpp index 3a94c52bb732be982cea09f67879cc736cff1193..c5123a1321e4e2f6877c2f86cce1dcfa3c326bfc 100644 --- a/dG3D/src/dG3DMaterialLaw.cpp +++ b/dG3D/src/dG3DMaterialLaw.cpp @@ -294,7 +294,7 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV ipvcur->getConstRefTodElecDisplacementdNonLocalVariable()[j][i].print("dElecDisplacement dp Analytique"); }*/ } - /*for (int i=0; i< numExtraDof; i++) + for (int i=0; i< numExtraDof; i++) { Msg::Info("Field Analytique: %e",ipvcur->getConstRefToField(i)); // FLE ipvcur->getConstRefToFlux()[i].print("Flux Analytique"); // FLE @@ -374,7 +374,7 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV ipvcur->getRefTodLocalVariabledVectorPotential()[k][i].print("dp dMagneticVectorPotential Analytique"); ipvcur->getRefTodLocalVariabledVectorCurl()[k][i].print("dp dMagneticVectorCurl Analytique"); } - }*/ + } #endif if (stiff) @@ -666,7 +666,7 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV ipvcur->getConstRefTodElecDisplacementdNonLocalVariable()[j][i].print("dElecDisplacement dp Numerique"); }*/ } - /*for (int i=0; i< numExtraDof; i++) + for (int i=0; i< numExtraDof; i++) { Msg::Info("Field Numerique: %e",ipvcur->getConstRefToField(i)); // FLE ipvcur->getConstRefToFlux()[i].print("Flux Numerique"); // FLE @@ -746,7 +746,7 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV ipvcur->getRefTodLocalVariabledVectorPotential()[k][i].print("dp dMagneticVectorPotential Numerique"); ipvcur->getRefTodLocalVariabledVectorCurl()[k][i].print("dp dMagneticVectorCurl Numerique"); } - }*/ + } #endif } } @@ -5915,14 +5915,14 @@ void StochTMDMNDG3DMaterialLaw::stress(IPVariable*ipv, const IPVariable*ipvprev, if(stiff_loc){ const STensor43& L_i = ipv_i->getConstRefToTangentModuli(); - const STensor3& dPdT_i = ipv_i->getRefTodPdT(); - const STensor3& dqdgradT_i = ipv_i->getRefTodThermalFluxdGradT(); - const SVector3& dqdT_i = ipv_i->getRefTodThermalFluxdT(); - const STensor33& dqdF_i = ipv_i->getRefTodThermalFluxdF(); - const double& dwdt_i = ipv_i->getRefTodThermalSourcedField(); - const STensor3& dwdf_i = ipv_i->getRefTodThermalSourcedF(); STensorOperation::zero(dwdf); - const double& dmechSourcedt_i = ipv_i->getRefTodMechanicalSourcedField()(0,0); - const STensor3& dmechSourcedf_i = ipv_i->getRefTodMechanicalSourcedF()[0]; + const STensor3& dPdT_i = ipv_i->getConstRefTodPdT(); + const STensor3& dqdgradT_i = ipv_i->getConstRefTodThermalFluxdGradT(); + const SVector3& dqdT_i = ipv_i->getConstRefTodThermalFluxdT(); + const STensor33& dqdF_i = ipv_i->getConstRefTodThermalFluxdF(); + const double& dwdt_i = ipv_i->getConstRefTodThermalSourcedField(); + const STensor3& dwdf_i = ipv_i->getConstRefTodThermalSourcedF(); STensorOperation::zero(dwdf); + const double& dmechSourcedt_i = ipv_i->getConstRefTodMechanicalSourcedField()(0,0); + const STensor3& dmechSourcedf_i = ipv_i->getConstRefTodMechanicalSourcedF()[0]; if (_flag_isothermal && _flag_microTempFixed){ dwdtvec(i) = 0.; @@ -6162,15 +6162,18 @@ void StochTMDMNDG3DMaterialLaw::stress(IPVariable*ipv, const IPVariable*ipvprev, for(int l=0; l<3; l++) I4_first_type(m,n,k,l) = I2(m,k)*I2(n,l); // = dFrotdFrot + static STensor3 dHdH_rot; STensorOperation::zero(dHdH_rot); static STensor43 dFdF_rot; STensorOperation::zero(dFdF_rot); for(int m=0; m<3; m++) for(int n=0; n<3; n++) - for(int k=0; k<3; k++) + for(int k=0; k<3; k++){ + dHdH_rot(m,n) += RT(m,k)*I2(k,n); for(int l=0; l<3; l++){ dFdF_rot(m,n,k,l) = 0.; for(int p=0; p<3; p++) dFdF_rot(m,n,k,l) += RT(m,p)*I4_first_type(p,n,k,l); } + } static STensor43 L_rot; static STensor33 dqdF_rot; @@ -6178,7 +6181,7 @@ void StochTMDMNDG3DMaterialLaw::stress(IPVariable*ipv, const IPVariable*ipvprev, STensorOperation::multSTensor43InPlace(L,dFdF_rot); STensorOperation::multSTensor33STensor43InPlace1st(dqdF,dFdF_rot); - STensorOperation::multSTensor3STensor43InPlace1st(dqdgradT,dFdF_rot); + STensorOperation::multSTensor3InPlace1st(dqdgradT,dHdH_rot); STensorOperation::multSTensor3STensor43(dwdf,dFdF_rot,dwdf_rot); STensorOperation::multSTensor3STensor43(dmechSourcedf,dFdF_rot,dmechSourcedf_rot); for(int i=0; i<3; i++)