Skip to content
Snippets Groups Projects
Commit 9673adae authored by Ludovic Noels's avatar Ludovic Noels
Browse files

Merge branch 'master' into juan_Stoch_DP

parents baf14d39 1612a71d
No related branches found
No related tags found
1 merge request!384Juan stoch dp
......@@ -1087,7 +1087,7 @@ void mlawNonLocalDamage::constitutive(const STensor3& F0,const STensor3& Fn,STen
DirrEnergDF(2,1) = dEnePathFollowingdStrain[5]/sq2;
STensor43 Cel, Sel;
ElasticStiffness(&Cel);
ElasticStiffness(statev_1,&Cel);
STensorOperation::inverseSTensor43(Cel,Sel);
static STensor3 I(1.);
for (int i=0; i<3; i++){
......@@ -2109,6 +2109,34 @@ const double mlawNonLocalDamage::poissonRatio() const
{
return _nu0;
}
void mlawNonLocalDamage::ElasticStiffness(double *statev, STensor43* elasticTensor) const
{
fullMatrix<double> Cel_fullMatrix(6,6);
static double **Cel_matrix;
static bool init=false;
if(init==false)
{
mallocmatrix(&Cel_matrix,6,6);
init=true;
}
mat->get_elOp(statev,Cel_matrix);
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++){
Cel_fullMatrix(i,j)=Cel_matrix[i][j];
}
}
for(int i=3;i<6;i++)
{
for(int j=0;j<3;j++)
{
Cel_fullMatrix(i,j)*=(1./sq2);
Cel_fullMatrix(j,i)*=2.;
Cel_fullMatrix(j,i)*=(1./sq2);
}
}
STensorOperation::fromFullMatrixToSTensor43(Cel_fullMatrix,(*elasticTensor));
};
void mlawNonLocalDamage::ElasticStiffness(STensor43* elasticTensor) const
{
......
......@@ -97,6 +97,7 @@ class mlawNonLocalDamage : public materialLaw
virtual int getNbNonLocalVariables() const {return nlVar;};
virtual void updateCharacteristicLengthTensor(double** chara_Length, double *statev) const {};
virtual void ElasticStiffness(STensor43* elasticTensor) const;
virtual void ElasticStiffness(double *statev, STensor43* elasticTensor) const;
virtual void ElasticStiffnessMtx(double *statev, STensor43* elasticTensor) const;
virtual void ElasticStiffnessInc(double *statev, STensor43* elasticTensor) const;
virtual void ElasticStiffness_incOri(double e1, double e2, double e3,STensor43* elasticTensor) const;
......
......@@ -268,7 +268,7 @@ check.equal(6.859167e+03,mysolver.getArchivedForceOnPhysicalGroup("Face", 102, 0
data21 = csv.reader(open('force102comp0_part2.csv'), delimiter=';')
force2 = list(data21)
check.equal(1.236485e+03,float(force2[-1][1]),1e-5)
check.equal(1.235198e+03,float(force2[-1][1]),1e-5)
#mysolver.disableResetRestart() #only battery: the second solve mimics a restart
......
......@@ -13,7 +13,7 @@ else:
data1 = csv.reader(open('force102comp0_part2.csv'), delimiter=';')
force = list(data1)
checkEqual(1.236485e+03,float(force[-1][1]),1e-5)
checkEqual(1.235198e+03,float(force[-1][1]),1e-5)
if sys.version_info[0] < 3:
os.system('mpiexec -np 4 python fullPlateHoleRes.py')
......@@ -22,5 +22,5 @@ else:
data21 = csv.reader(open('force102comp0_part2.csv'), delimiter=';')
force2 = list(data21)
checkEqual(1.236485e+03,float(force2[-1][1]),1e-5)
checkEqual(1.235198e+03,float(force2[-1][1]),1e-5)
......@@ -491,7 +491,7 @@ mysolver.solve()
# ===Test==========================================================================================
check= TestCheck()
check.equal(-7.604566e-05,mysolver.getArchivedNodalValue(7,0,mysolver.displacement),1e-5)
check.equal(-7.612266e-05,mysolver.getArchivedNodalValue(7,0,mysolver.displacement),1e-5)
......
......@@ -484,7 +484,7 @@ mysolver.solve()
check = TestCheck()
check.equal(-6.772246e-01,mysolver.getArchivedForceOnPhysicalGroup("Face", 5678, 3),1.e-6)
check.equal(8.404647e+02,mysolver.getArchivedNodalValue(1,3,mysolver.displacement),1.e-6)
check.equal(1.637999e-04,mysolver.getArchivedNodalValue(7,0,mysolver.displacement),1.e-6)
check.equal(-6.735810e-01,mysolver.getArchivedForceOnPhysicalGroup("Face", 5678, 3),1.e-6)
check.equal(8.380272e+02,mysolver.getArchivedNodalValue(1,3,mysolver.displacement),1.e-6)
check.equal(1.606705e-04,mysolver.getArchivedNodalValue(7,0,mysolver.displacement),1.e-6)
......@@ -206,5 +206,5 @@ except:
os._exit(1)
else:
st = float(lstress.split(';')[2])
check.equal(4.640682e+01,st,1.e-4)
check.equal(3.951369e+01,st,1.e-4)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment