From 9c8f4c22f43985e6d1fb180fe341e9cdba5cc907 Mon Sep 17 00:00:00 2001 From: Van Dung Nguyen <vdg.nguyen@gmail.com> Date: Fri, 10 Nov 2017 16:46:21 +0100 Subject: [PATCH] add some new ipvariable --- NonLinearSolver/internalPoints/ipField.cpp | 6 ++++ NonLinearSolver/internalPoints/ipField.h | 4 ++- dG3D/src/dG3DIPVariable.cpp | 35 ++++++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/NonLinearSolver/internalPoints/ipField.cpp b/NonLinearSolver/internalPoints/ipField.cpp index cc2444f89..c6c8c8713 100644 --- a/NonLinearSolver/internalPoints/ipField.cpp +++ b/NonLinearSolver/internalPoints/ipField.cpp @@ -209,6 +209,12 @@ std::string IPField::ToString(const int i){ else if (i == EXTRAFIELD_NORM) return "EXTRAFIELD_NORM"; else if (i == DELETED) return "DELETED"; else if (i == LOST_ELLIPTICITY) return "LOST_ELLIPTICITY"; + else if (i == LOCAL_0) return "LOCAL_0"; + else if (i == LOCAL_1) return "LOCAL_1"; + else if (i == LOCAL_2) return "LOCAL_2"; + else if (i == NONLOCAL_0) return "NONLOCAL_0"; + else if (i == NONLOCAL_1) return "NONLOCAL_1"; + else if (i == NONLOCAL_2) return "NONLOCAL_2"; else{ Msg::Warning("This IP field %d is not defined in IPField::ToString(%d)",i,i); return "UNDEFINED"; diff --git a/NonLinearSolver/internalPoints/ipField.h b/NonLinearSolver/internalPoints/ipField.h index 88b06e283..f611cafe1 100644 --- a/NonLinearSolver/internalPoints/ipField.h +++ b/NonLinearSolver/internalPoints/ipField.h @@ -85,7 +85,9 @@ class IPField : public elementsField { MTX_STRAIN_XX,MTX_STRAIN_YY,MTX_STRAIN_ZZ,MTX_STRAIN_XY,MTX_STRAIN_YZ,MTX_STRAIN_XZ, INC_STRAIN_XX,INC_STRAIN_YY,INC_STRAIN_ZZ,INC_STRAIN_XY,INC_STRAIN_YZ,INC_STRAIN_XZ, EXTRAFIELD_1,EXTRAFIELD_2,EXTRAFIELD_3,EXTRAFIELD_4,EXTRAFIELD_5,EXTRAFIELD_6,EXTRAFIELD_7,EXTRAFIELD_8,EXTRAFIELD_9, - EXTRAFIELD_NORM, DELETED,LOST_ELLIPTICITY}; + EXTRAFIELD_NORM, DELETED,LOST_ELLIPTICITY, + LOCAL_0,LOCAL_1, LOCAL_2, + NONLOCAL_0, NONLOCAL_1, NONLOCAL_2}; enum Operator { MEAN_VALUE=1, MIN_VALUE, MAX_VALUE, CRUDE_VALUE}; #ifndef SWIG // Struct for archiving diff --git a/dG3D/src/dG3DIPVariable.cpp b/dG3D/src/dG3DIPVariable.cpp index 5f5a3f024..8dfb384f8 100644 --- a/dG3D/src/dG3DIPVariable.cpp +++ b/dG3D/src/dG3DIPVariable.cpp @@ -256,6 +256,41 @@ double dG3DIPVariable::get(const int comp) const if (this->isDeleted()) return 1.; else return 0.; } + else if (comp == IPField::LOCAL_0){ + if (getNumberNonLocalVariable()>0){ + return getConstRefToLocalVariable(0); + } + else return 0.; + } + else if (comp == IPField::LOCAL_1){ + if (getNumberNonLocalVariable()>1){ + return getConstRefToLocalVariable(1); + } + else return 0.; + } + else if (comp == IPField::LOCAL_2){ + if (getNumberNonLocalVariable() > 2){ + return getConstRefToLocalVariable(2); + } + else return 0.; + } + else if (comp == IPField::NONLOCAL_0){ + if (getNumberNonLocalVariable() > 0){ + return getConstRefToNonLocalVariable(0); + } + else return 0.; + } + else if (comp == IPField::NONLOCAL_1){ + if (getNumberNonLocalVariable()> 1){ + return getConstRefToNonLocalVariable(0); + } + else return 0.; + } + else if (comp == IPField::NONLOCAL_2){ + if (getNumberNonLocalVariable() > 2) + return getConstRefToNonLocalVariable(0); + else return 0.; + } else return 0.; -- GitLab