Skip to content
Snippets Groups Projects
Commit 4fe5ba0b authored by Vinayak Gholap's avatar Vinayak Gholap
Browse files

Bug found and fixed. Issues in tests with LinearElecMagThermMech law fixed.

parent cc3d1290
No related branches found
No related tags found
1 merge request!435Merge branch vinayak into master
......@@ -260,7 +260,7 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
{
ipvcur->getConstRefToDLocalVariableDStrain()[k].print("dpdE Analyique");
}
/*if (this->getMacroSolver() != NULL)
if (this->getMacroSolver() != NULL)
{
if (this->getMacroSolver()!=NULL)
{
......@@ -268,7 +268,7 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
ipvcur->getConstRefToDIrreversibleEnergyDDeformationGradient().print("dEnedE Analytique");
}
}
}*/
}
for (int i=0; i< numNonLocalVars; i++)
{
for (int j=0; j< numNonLocalVars; j++)
......@@ -276,9 +276,9 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
Msg::Info("dpdp Analytique: %e",ipvcur->getConstRefToDLocalVariableDNonLocalVariable()(j,i));
}
ipvcur->getConstRefToDStressDNonLocalVariable()[i].print("dPdp Analytique");
//Msg::Info("dEnedp Analytique: %e",ipvcur->getConstRefToDIrreversibleEnergyDNonLocalVariable(i));
Msg::Info("dEnedp Analytique: %e",ipvcur->getConstRefToDIrreversibleEnergyDNonLocalVariable(i));
 
/*for (unsigned int j = 0; j < numCurlDof; ++j)
for (unsigned int j = 0; j < numCurlDof; ++j)
{
ipvcur->getConstRefTodVectorFielddNonLocalVariable()[j][i].print("dMagneticVectorField dp Analytique");
ipvcur->getConstRefTodSourceVectorFielddNonLocalVariable()[j][i].print("dSourceVectorField dp Analytique");
......@@ -292,11 +292,12 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
Msg::Info("d Mechanical source dp Analytique: %e", ipvcur->getRefTodMechanicalSourcedNonLocalVariable()(j,i));
Msg::Info("dEMFieldSource dp Analytique: %e",ipvcur->getConstRefTodEMFieldSourcedNonLocalVariable()(j,i));
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->getConstRefToGradField()[i].print("GradField Analytique");
ipvcur->getConstRefToFlux()[i].print("Flux Analytique"); // FLE
ipvcur->getConstRefToElectricDisplacement()[i].print("ElecDisplacement Analytique");
Msg::Info("ThermSource Analytique: %e",ipvcur->getConstRefToFieldSource()(i)); // FLE
......@@ -343,6 +344,7 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
}
for (unsigned int i = 0; i < numCurlDof; ++i)
{
ipvcur->getConstRefToSourceVectorField(i).print("SourceVectorField Analytique");
ipvcur->getConstRefTodPdVectorPotential()[i].print("dPdMagneticVectorPotential Analytique");
ipvcur->getConstRefTodPdVectorCurl()[i].print("dPdMagneticVectorCurl Analytique");
ipvcur->getConstRefTodVectorFielddF()[i].print("dMagneticVectorField dF Analytique");
......@@ -374,7 +376,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)
......@@ -634,12 +636,12 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
{
ipvcur->getConstRefToDLocalVariableDStrain()[k].print("dpdE Numerique");
}
/*if (this->getMacroSolver() != NULL)
if (this->getMacroSolver() != NULL)
{
if (this->getMacroSolver()->withPathFollowing() and this->getMacroSolver()->getPathFollowingMethod() == pathFollowingManager::LOCAL_BASED){
ipvcur->getConstRefToDIrreversibleEnergyDDeformationGradient().print("dEnedE Numerique");
}
}*/
}
for (int i=0; i< numNonLocalVars; i++)
{
for (int j=0; j< numNonLocalVars; j++)
......@@ -647,9 +649,9 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
Msg::Info("dpdp Numerique: %e",ipvcur->getConstRefToDLocalVariableDNonLocalVariable()(j,i));
}
ipvcur->getConstRefToDStressDNonLocalVariable()[i].print("dPdp Numerique");
//Msg::Info("dEnedp Numerique: %e",ipvcur->getConstRefToDIrreversibleEnergyDNonLocalVariable(i));
Msg::Info("dEnedp Numerique: %e",ipvcur->getConstRefToDIrreversibleEnergyDNonLocalVariable(i));
 
/*const unsigned int extradof_T = 0; // Thermal field EM source
const unsigned int extradof_T = 0; // Thermal field EM source
for (unsigned int j = 0; j < numCurlDof; ++j)
{
ipvcur->getConstRefTodVectorFielddNonLocalVariable()[j][i].print("dMagneticVectorField dp Numerique");
......@@ -664,11 +666,12 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
Msg::Info("d Mechanical source dp Numerique: %e", ipvcur->getRefTodMechanicalSourcedNonLocalVariable()(j,i));
Msg::Info("dEMFieldSource dp Numerique: %e",ipvcur->getConstRefTodEMFieldSourcedNonLocalVariable()(j,i));
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->getConstRefToGradField()[i].print("GradField Numerique");
ipvcur->getConstRefToFlux()[i].print("Flux Numerique"); // FLE
ipvcur->getConstRefToElectricDisplacement()[i].print("ElecDisplacement Numerique");
Msg::Info("ThermSource Numerique: %e",ipvcur->getConstRefToFieldSource()(i)); // FLE
......@@ -715,6 +718,7 @@ void dG3DMaterialLawWithTangentByPerturbation::stress(IPVariable* ipv, const IPV
for (unsigned int i = 0; i < numCurlDof; ++i)
{
const unsigned int extradof_T = 0; // Thermal field EM source
ipvcur->getConstRefToSourceVectorField(i).print("SourceVectorField Numerique");
ipvcur->getConstRefTodPdVectorPotential()[i].print("dPdMagneticVectorPotential Numerique");
ipvcur->getConstRefTodPdVectorCurl()[i].print("dPdMagneticVectorCurl Numerique");
ipvcur->getConstRefTodVectorFielddF()[i].print("dMagneticVectorField dF Numerique");
......@@ -746,7 +750,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
}
}
......@@ -11186,10 +11190,10 @@ const bool checkfrac, const bool dTangent)
double &dw_TdV = ipvcur->getRefTodThermalSourcedV();
STensor3& dw_TdF = ipvcur->getRefTodThermalSourcedF();
 
double &w_V = ipvcur->getRefToThermalSource();
double &dw_VdT = ipvcur->getRefTodThermalSourcedT();
double &dw_VdV = ipvcur->getRefTodThermalSourcedV();
STensor3& dw_VdF = ipvcur->getRefTodThermalSourcedF();
double &w_V = ipvcur->getRefToVoltageSource();
  • Author Developer

    Bug found: This set the thermal source and its tangents to zero due to the use of the same RefFunction for both w_T and w_V.

  • Please register or sign in to reply
double &dw_VdT = ipvcur->getRefTodVoltageSourcedT();
double &dw_VdV = ipvcur->getRefTodVoltageSourcedV();
STensor3& dw_VdF = ipvcur->getRefTodVoltageSourcedF();
 
ipvcur->setRefToTherConductivity(this->lineark10);
ipvcur->setRefToCrossTherConductivity(this->lineark20);
......@@ -11500,10 +11504,10 @@ const bool checkfrac, const bool dTangent)
double &dw_TdV = ipvcur->getRefTodThermalSourcedV();
STensor3& dw_TdF = ipvcur->getRefTodThermalSourcedF();
 
double &w_V = ipvcur->getRefToThermalSource();
double &dw_VdT = ipvcur->getRefTodThermalSourcedT();
double &dw_VdV = ipvcur->getRefTodThermalSourcedV();
STensor3& dw_VdF = ipvcur->getRefTodThermalSourcedF();
double &w_V = ipvcur->getRefToVoltageSource();
double &dw_VdT = ipvcur->getRefTodVoltageSourcedT();
double &dw_VdV = ipvcur->getRefTodVoltageSourcedV();
STensor3& dw_VdF = ipvcur->getRefTodVoltageSourcedF();
 
ipvcur->setRefToTherConductivity(this->lineark10);
ipvcur->setRefToCrossTherConductivity(this->lineark20);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment