From 283208779d4a0ec216ab1a21a5f1c10d300ef974 Mon Sep 17 00:00:00 2001 From: Van Dung Nguyen <vdg.nguyen@gmail.com> Date: Thu, 20 Sep 2018 11:41:52 +0200 Subject: [PATCH] add new ipdata --- NonLinearSolver/materialLaw/STensorOperations.h | 9 +++++++++ dG3D/benchmarks/nonLocalJ2/twoHole.py | 1 + dG3D/src/dG3DIPVariable.cpp | 9 +++++++++ 3 files changed, 19 insertions(+) diff --git a/NonLinearSolver/materialLaw/STensorOperations.h b/NonLinearSolver/materialLaw/STensorOperations.h index a4002ddba..f91c90b91 100644 --- a/NonLinearSolver/materialLaw/STensorOperations.h +++ b/NonLinearSolver/materialLaw/STensorOperations.h @@ -386,6 +386,15 @@ inline double dot(const STensor3& a, const STensor3& b){ } } }; + inline void multSTensor3FirstTransposeAdd(const STensor3& a, const STensor3&b, STensor3& c){ + for (int i=0; i<3; i++){ + for (int j=0; j<3; j++){ + for (int k=0; k<3; k++){ + c(i,j) +=a(k,i)*b(k,j); + } + } + } + }; inline void multSTensor3STensor43(const STensor3& a, const STensor43& b, STensor3& c){ for (int i=0; i<3; i++){ diff --git a/dG3D/benchmarks/nonLocalJ2/twoHole.py b/dG3D/benchmarks/nonLocalJ2/twoHole.py index 01d9fca0b..a748aca91 100644 --- a/dG3D/benchmarks/nonLocalJ2/twoHole.py +++ b/dG3D/benchmarks/nonLocalJ2/twoHole.py @@ -73,6 +73,7 @@ mysolver.displacementBC("Face",12,1,0.) mysolver.displacementBC("Face",13,1,1e-3) +mysolver.internalPointBuildView("eq strain",IPField.GL_EQUIVALENT_STRAIN, 1, 1) mysolver.internalPointBuildView("svm",IPField.SVM, 1, 1) mysolver.internalPointBuildView("sig_xx",IPField.SIG_XX, 1, 1) mysolver.internalPointBuildView("sig_yy",IPField.SIG_YY, 1, 1) diff --git a/dG3D/src/dG3DIPVariable.cpp b/dG3D/src/dG3DIPVariable.cpp index 0700f1154..a37531078 100644 --- a/dG3D/src/dG3DIPVariable.cpp +++ b/dG3D/src/dG3DIPVariable.cpp @@ -481,6 +481,15 @@ double dG3DIPVariable::get(const int comp) const if (this->isDeleted()) return 1.; else return 0.; } + else if (comp == IPField::GL_EQUIVALENT_STRAIN){ + static STensor3 E, devE; + static double trE; + STensorOperation::diag(E,-1.); + STensorOperation::multSTensor3FirstTransposeAdd(F,F,E); + E *= (0.5); + STensorOperation::decomposeDevTr(E,devE,trE); + return sqrt(2.*devE.dotprod()/3.); + } else if (comp == IPField::GL_XX){ static STensor3 FTF; STensorOperation::multSTensor3FirstTranspose(F,F,FTF); -- GitLab