diff --git a/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_plane_strain_2D_law.cpp b/applications/GeoMechanicsApplication/custom_constitutive/incremental_linear_elastic_law.cpp similarity index 66% rename from applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_plane_strain_2D_law.cpp rename to applications/GeoMechanicsApplication/custom_constitutive/incremental_linear_elastic_law.cpp index 821287ace5d8..68bb5b66d35c 100644 --- a/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_plane_strain_2D_law.cpp +++ b/applications/GeoMechanicsApplication/custom_constitutive/incremental_linear_elastic_law.cpp @@ -10,16 +10,16 @@ // Main authors: Wijtze Pieter Kikstra // Richard Faasse -#include "custom_constitutive/linear_elastic_plane_strain_2D_law.h" +#include "custom_constitutive/incremental_linear_elastic_law.h" #include "constitutive_law_dimension.h" #include "geo_mechanics_application_variables.h" namespace Kratos { -GeoLinearElasticPlaneStrain2DLaw::GeoLinearElasticPlaneStrain2DLaw() = default; +GeoIncrementalLinearElasticLaw::GeoIncrementalLinearElasticLaw() = default; -GeoLinearElasticPlaneStrain2DLaw::GeoLinearElasticPlaneStrain2DLaw(std::unique_ptr pConstitutiveDimension) +GeoIncrementalLinearElasticLaw::GeoIncrementalLinearElasticLaw(std::unique_ptr pConstitutiveDimension) : GeoLinearElasticLaw{}, mpConstitutiveDimension(std::move(pConstitutiveDimension)), mStressVector(ZeroVector(mpConstitutiveDimension->GetStrainSize())), @@ -29,7 +29,7 @@ GeoLinearElasticPlaneStrain2DLaw::GeoLinearElasticPlaneStrain2DLaw(std::unique_p { } -GeoLinearElasticPlaneStrain2DLaw::GeoLinearElasticPlaneStrain2DLaw(const GeoLinearElasticPlaneStrain2DLaw& rOther) +GeoIncrementalLinearElasticLaw::GeoIncrementalLinearElasticLaw(const GeoIncrementalLinearElasticLaw& rOther) : GeoLinearElasticLaw(rOther), mStressVector(rOther.mStressVector), mStressVectorFinalized(rOther.mStressVectorFinalized), @@ -41,7 +41,7 @@ GeoLinearElasticPlaneStrain2DLaw::GeoLinearElasticPlaneStrain2DLaw(const GeoLine mpConstitutiveDimension = rOther.mpConstitutiveDimension->Clone(); } -GeoLinearElasticPlaneStrain2DLaw& GeoLinearElasticPlaneStrain2DLaw::operator=(const GeoLinearElasticPlaneStrain2DLaw& rOther) +GeoIncrementalLinearElasticLaw& GeoIncrementalLinearElasticLaw::operator=(const GeoIncrementalLinearElasticLaw& rOther) { GeoLinearElasticLaw::operator=(rOther); mStressVector = rOther.mStressVector; @@ -55,24 +55,23 @@ GeoLinearElasticPlaneStrain2DLaw& GeoLinearElasticPlaneStrain2DLaw::operator=(co return *this; } -GeoLinearElasticPlaneStrain2DLaw::GeoLinearElasticPlaneStrain2DLaw(GeoLinearElasticPlaneStrain2DLaw&& rOther) noexcept = default; -GeoLinearElasticPlaneStrain2DLaw& GeoLinearElasticPlaneStrain2DLaw::operator=( - GeoLinearElasticPlaneStrain2DLaw&& rOther) noexcept = default; -GeoLinearElasticPlaneStrain2DLaw::~GeoLinearElasticPlaneStrain2DLaw() = default; +GeoIncrementalLinearElasticLaw::GeoIncrementalLinearElasticLaw(GeoIncrementalLinearElasticLaw&& rOther) noexcept = default; +GeoIncrementalLinearElasticLaw& GeoIncrementalLinearElasticLaw::operator=(GeoIncrementalLinearElasticLaw&& rOther) noexcept = default; +GeoIncrementalLinearElasticLaw::~GeoIncrementalLinearElasticLaw() = default; -ConstitutiveLaw::Pointer GeoLinearElasticPlaneStrain2DLaw::Clone() const +ConstitutiveLaw::Pointer GeoIncrementalLinearElasticLaw::Clone() const { - return Kratos::make_shared(*this); + return Kratos::make_shared(*this); } -bool& GeoLinearElasticPlaneStrain2DLaw::GetValue(const Variable& rThisVariable, bool& rValue) +bool& GeoIncrementalLinearElasticLaw::GetValue(const Variable& rThisVariable, bool& rValue) { // This Constitutive Law has been checked with Stenberg Stabilization if (rThisVariable == STENBERG_SHEAR_STABILIZATION_SUITABLE) rValue = true; return rValue; } -void GeoLinearElasticPlaneStrain2DLaw::GetLawFeatures(Features& rFeatures) +void GeoIncrementalLinearElasticLaw::GetLawFeatures(Features& rFeatures) { rFeatures.mOptions.Set(mpConstitutiveDimension->GetSpatialType()); rFeatures.mOptions.Set(INFINITESIMAL_STRAINS); @@ -85,19 +84,19 @@ void GeoLinearElasticPlaneStrain2DLaw::GetLawFeatures(Features& rFeatures) rFeatures.mSpaceDimension = WorkingSpaceDimension(); } -SizeType GeoLinearElasticPlaneStrain2DLaw::WorkingSpaceDimension() +SizeType GeoIncrementalLinearElasticLaw::WorkingSpaceDimension() { return mpConstitutiveDimension->GetDimension(); } -SizeType GeoLinearElasticPlaneStrain2DLaw::GetStrainSize() const +SizeType GeoIncrementalLinearElasticLaw::GetStrainSize() const { return mpConstitutiveDimension->GetStrainSize(); } -bool GeoLinearElasticPlaneStrain2DLaw::IsIncremental() { return true; } +bool GeoIncrementalLinearElasticLaw::IsIncremental() { return true; } -void GeoLinearElasticPlaneStrain2DLaw::CalculateElasticMatrix(Matrix& C, ConstitutiveLaw::Parameters& rValues) +void GeoIncrementalLinearElasticLaw::CalculateElasticMatrix(Matrix& C, ConstitutiveLaw::Parameters& rValues) { KRATOS_TRY @@ -115,9 +114,9 @@ void GeoLinearElasticPlaneStrain2DLaw::CalculateElasticMatrix(Matrix& C, Constit KRATOS_CATCH("") } -void GeoLinearElasticPlaneStrain2DLaw::CalculatePK2Stress(const Vector& rStrainVector, - Vector& rStressVector, - ConstitutiveLaw::Parameters& rValues) +void GeoIncrementalLinearElasticLaw::CalculatePK2Stress(const Vector& rStrainVector, + Vector& rStressVector, + ConstitutiveLaw::Parameters& rValues) { KRATOS_TRY @@ -134,9 +133,9 @@ void GeoLinearElasticPlaneStrain2DLaw::CalculatePK2Stress(const Vector& rStrainV KRATOS_CATCH("") } -bool GeoLinearElasticPlaneStrain2DLaw::RequiresInitializeMaterialResponse() { return true; } +bool GeoIncrementalLinearElasticLaw::RequiresInitializeMaterialResponse() { return true; } -void GeoLinearElasticPlaneStrain2DLaw::InitializeMaterialResponseCauchy(ConstitutiveLaw::Parameters& rValues) +void GeoIncrementalLinearElasticLaw::InitializeMaterialResponseCauchy(ConstitutiveLaw::Parameters& rValues) { KRATOS_TRY if (!mIsModelInitialized) { @@ -148,21 +147,21 @@ void GeoLinearElasticPlaneStrain2DLaw::InitializeMaterialResponseCauchy(Constitu KRATOS_CATCH("") } -bool GeoLinearElasticPlaneStrain2DLaw::RequiresFinalizeMaterialResponse() { return true; } +bool GeoIncrementalLinearElasticLaw::RequiresFinalizeMaterialResponse() { return true; } -void GeoLinearElasticPlaneStrain2DLaw::FinalizeMaterialResponseCauchy(ConstitutiveLaw::Parameters& rValues) +void GeoIncrementalLinearElasticLaw::FinalizeMaterialResponseCauchy(ConstitutiveLaw::Parameters& rValues) { mStrainVectorFinalized = rValues.GetStrainVector(); mStressVectorFinalized = mStressVector; } -void GeoLinearElasticPlaneStrain2DLaw::FinalizeMaterialResponsePK2(ConstitutiveLaw::Parameters& rValues) +void GeoIncrementalLinearElasticLaw::FinalizeMaterialResponsePK2(ConstitutiveLaw::Parameters& rValues) { // Small deformation so we can call the Cauchy method FinalizeMaterialResponseCauchy(rValues); } -void GeoLinearElasticPlaneStrain2DLaw::save(Serializer& rSerializer) const +void GeoIncrementalLinearElasticLaw::save(Serializer& rSerializer) const { KRATOS_SERIALIZE_SAVE_BASE_CLASS(rSerializer, GeoLinearElasticLaw) rSerializer.save("StressVector", mStressVector); @@ -172,7 +171,7 @@ void GeoLinearElasticPlaneStrain2DLaw::save(Serializer& rSerializer) const rSerializer.save("mIsModelInitialized", mIsModelInitialized); } -void GeoLinearElasticPlaneStrain2DLaw::load(Serializer& rSerializer) +void GeoIncrementalLinearElasticLaw::load(Serializer& rSerializer) { KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, GeoLinearElasticLaw) rSerializer.load("StressVector", mStressVector); diff --git a/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_plane_strain_2D_law.h b/applications/GeoMechanicsApplication/custom_constitutive/incremental_linear_elastic_law.h similarity index 77% rename from applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_plane_strain_2D_law.h rename to applications/GeoMechanicsApplication/custom_constitutive/incremental_linear_elastic_law.h index 8c067a124486..53980c53d22c 100644 --- a/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_plane_strain_2D_law.h +++ b/applications/GeoMechanicsApplication/custom_constitutive/incremental_linear_elastic_law.h @@ -21,27 +21,27 @@ namespace Kratos class ConstitutiveLawDimension; /** - * @class GeoLinearElasticPlaneStrain2DLaw + * @class GeoIncrementalLinearElasticLaw * @ingroup GeoMechanicsApplication - * @brief This class defines a small deformation linear elastic constitutive model for plane strain cases + * @brief This class defines an incremental linear elastic constitutive model for plane strain and 3D cases * @author Vahid Galavi */ -class KRATOS_API(GEO_MECHANICS_APPLICATION) GeoLinearElasticPlaneStrain2DLaw : public GeoLinearElasticLaw +class KRATOS_API(GEO_MECHANICS_APPLICATION) GeoIncrementalLinearElasticLaw : public GeoLinearElasticLaw { public: using BaseType = GeoLinearElasticLaw; using SizeType = std::size_t; - KRATOS_CLASS_POINTER_DEFINITION(GeoLinearElasticPlaneStrain2DLaw); - GeoLinearElasticPlaneStrain2DLaw(); + KRATOS_CLASS_POINTER_DEFINITION(GeoIncrementalLinearElasticLaw); + GeoIncrementalLinearElasticLaw(); - explicit GeoLinearElasticPlaneStrain2DLaw(std::unique_ptr pConstitutiveDimension); - GeoLinearElasticPlaneStrain2DLaw(const GeoLinearElasticPlaneStrain2DLaw& rOther); - GeoLinearElasticPlaneStrain2DLaw& operator=(const GeoLinearElasticPlaneStrain2DLaw& rOther); + explicit GeoIncrementalLinearElasticLaw(std::unique_ptr pConstitutiveDimension); + GeoIncrementalLinearElasticLaw(const GeoIncrementalLinearElasticLaw& rOther); + GeoIncrementalLinearElasticLaw& operator=(const GeoIncrementalLinearElasticLaw& rOther); - GeoLinearElasticPlaneStrain2DLaw(GeoLinearElasticPlaneStrain2DLaw&& rOther) noexcept; - GeoLinearElasticPlaneStrain2DLaw& operator=(GeoLinearElasticPlaneStrain2DLaw&& rOther) noexcept; - ~GeoLinearElasticPlaneStrain2DLaw() override; + GeoIncrementalLinearElasticLaw(GeoIncrementalLinearElasticLaw&& rOther) noexcept; + GeoIncrementalLinearElasticLaw& operator=(GeoIncrementalLinearElasticLaw&& rOther) noexcept; + ~GeoIncrementalLinearElasticLaw() override; [[nodiscard]] ConstitutiveLaw::Pointer Clone() const override; @@ -112,6 +112,6 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) GeoLinearElasticPlaneStrain2DLaw : p friend class Serializer; void save(Serializer& rSerializer) const override; void load(Serializer& rSerializer) override; -}; // Class GeoLinearElasticPlaneStrain2DLaw +}; // Class GeoIncrementalLinearElasticLaw } // namespace Kratos \ No newline at end of file diff --git a/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_2D_beam_law.h b/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_2D_beam_law.h index 38c715ab605e..0000495bdba8 100644 --- a/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_2D_beam_law.h +++ b/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_2D_beam_law.h @@ -13,7 +13,7 @@ #pragma once // Project includes -#include "custom_constitutive/linear_elastic_plane_strain_2D_law.h" +#include "custom_constitutive/incremental_linear_elastic_law.h" namespace Kratos { @@ -43,17 +43,16 @@ namespace Kratos * @details This class derives from the linear elastic case on 3D * @author Vahid Galavi */ -class KRATOS_API(GEO_MECHANICS_APPLICATION) LinearElastic2DBeamLaw : public GeoLinearElasticPlaneStrain2DLaw +class KRATOS_API(GEO_MECHANICS_APPLICATION) LinearElastic2DBeamLaw : public GeoIncrementalLinearElasticLaw { public: ///@name Type Definitions ///@{ - /// The base class ConstitutiveLaw type definition using CLBaseType = ConstitutiveLaw; - /// The base class ElasticIsotropicK03DLaw type definition - using BaseType = GeoLinearElasticPlaneStrain2DLaw; + /// The base class GeoIncrementalLinearElasticLaw type definition + using BaseType = GeoIncrementalLinearElasticLaw; /// The size type definition using SizeType = std::size_t; @@ -171,12 +170,12 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) LinearElastic2DBeamLaw : public GeoL void save(Serializer& rSerializer) const override { - KRATOS_SERIALIZE_SAVE_BASE_CLASS(rSerializer, GeoLinearElasticPlaneStrain2DLaw) + KRATOS_SERIALIZE_SAVE_BASE_CLASS(rSerializer, BaseType) } void load(Serializer& rSerializer) override { - KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, GeoLinearElasticPlaneStrain2DLaw) + KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, BaseType) } }; // Class LinearElastic2DBeamLaw diff --git a/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_2D_interface_law.h b/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_2D_interface_law.h index 3ab701c9dd76..9c04c01d942b 100644 --- a/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_2D_interface_law.h +++ b/applications/GeoMechanicsApplication/custom_constitutive/linear_elastic_2D_interface_law.h @@ -13,7 +13,7 @@ #pragma once // Project includes -#include "custom_constitutive/linear_elastic_plane_strain_2D_law.h" +#include "custom_constitutive/incremental_linear_elastic_law.h" namespace Kratos { @@ -43,17 +43,16 @@ namespace Kratos * @details This class derives from the linear elastic case on 3D * @author Vahid Galavi */ -class KRATOS_API(GEO_MECHANICS_APPLICATION) LinearElastic2DInterfaceLaw : public GeoLinearElasticPlaneStrain2DLaw +class KRATOS_API(GEO_MECHANICS_APPLICATION) LinearElastic2DInterfaceLaw : public GeoIncrementalLinearElasticLaw { public: ///@name Type Definitions ///@{ - /// The base class ConstitutiveLaw type definition using CLBaseType = ConstitutiveLaw; - /// The base class ElasticIsotropicK03DLaw type definition - using BaseType = GeoLinearElasticPlaneStrain2DLaw; + /// The base class GeoIncrementalLinearElasticLaw type definition + using BaseType = GeoIncrementalLinearElasticLaw; /// The size type definition using SizeType = std::size_t; @@ -120,7 +119,7 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) LinearElastic2DInterfaceLaw : public * @param rValue a reference to the returned value * @param rValue output: the value of the specified variable */ - using GeoLinearElasticPlaneStrain2DLaw::GetValue; + using GeoIncrementalLinearElasticLaw::GetValue; bool& GetValue(const Variable& rThisVariable, bool& rValue) override; ///@} @@ -189,12 +188,12 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) LinearElastic2DInterfaceLaw : public void save(Serializer& rSerializer) const override { - KRATOS_SERIALIZE_SAVE_BASE_CLASS(rSerializer, GeoLinearElasticPlaneStrain2DLaw) + KRATOS_SERIALIZE_SAVE_BASE_CLASS(rSerializer, BaseType) } void load(Serializer& rSerializer) override { - KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, GeoLinearElasticPlaneStrain2DLaw) + KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, BaseType) } }; // Class LinearElastic2DInterfaceLaw diff --git a/applications/GeoMechanicsApplication/custom_constitutive/three_dimensional.cpp b/applications/GeoMechanicsApplication/custom_constitutive/three_dimensional.cpp new file mode 100644 index 000000000000..82ee75e8dcc1 --- /dev/null +++ b/applications/GeoMechanicsApplication/custom_constitutive/three_dimensional.cpp @@ -0,0 +1,56 @@ +// KRATOS___ +// // ) ) +// // ___ ___ +// // ____ //___) ) // ) ) +// // / / // // / / +// ((____/ / ((____ ((___/ / MECHANICS +// +// License: geo_mechanics_application/license.txt +// +// Main authors: Richard Faasse +// Gennady Markelov +// + +#include "three_dimensional.h" + +#include "geo_mechanics_application_constants.h" +#include "includes/constitutive_law.h" + +namespace Kratos +{ + +Matrix ThreeDimensional::FillConstitutiveMatrix(double c1, double c2, double c3) const +{ + Matrix result = ZeroMatrix(GetStrainSize(), GetStrainSize()); + + result(INDEX_3D_XX, INDEX_3D_XX) = c1; + result(INDEX_3D_XX, INDEX_3D_YY) = c2; + result(INDEX_3D_XX, INDEX_3D_ZZ) = c2; + + result(INDEX_3D_YY, INDEX_3D_XX) = c2; + result(INDEX_3D_YY, INDEX_3D_YY) = c1; + result(INDEX_3D_YY, INDEX_3D_ZZ) = c2; + + result(INDEX_3D_ZZ, INDEX_3D_XX) = c2; + result(INDEX_3D_ZZ, INDEX_3D_YY) = c2; + result(INDEX_3D_ZZ, INDEX_3D_ZZ) = c1; + + result(INDEX_3D_XY, INDEX_3D_XY) = c3; + result(INDEX_3D_YZ, INDEX_3D_YZ) = c3; + result(INDEX_3D_XZ, INDEX_3D_XZ) = c3; + + return result; +} + +std::unique_ptr ThreeDimensional::Clone() const +{ + return std::make_unique(); +} + +std::size_t ThreeDimensional::GetStrainSize() const { return VOIGT_SIZE_3D; } + +std::size_t ThreeDimensional::GetDimension() const { return N_DIM_3D; } + +Flags ThreeDimensional::GetSpatialType() const { return ConstitutiveLaw::THREE_DIMENSIONAL_LAW; } + +} // namespace Kratos diff --git a/applications/GeoMechanicsApplication/custom_constitutive/three_dimensional.h b/applications/GeoMechanicsApplication/custom_constitutive/three_dimensional.h new file mode 100644 index 000000000000..6495e08f85c4 --- /dev/null +++ b/applications/GeoMechanicsApplication/custom_constitutive/three_dimensional.h @@ -0,0 +1,32 @@ +// KRATOS___ +// // ) ) +// // ___ ___ +// // ____ //___) ) // ) ) +// // / / // // / / +// ((____/ / ((____ ((___/ / MECHANICS +// +// License: geo_mechanics_application/license.txt +// +// Main authors: Richard Faasse +// Gennady Markelov +// + +#pragma once + +#include "constitutive_law_dimension.h" +#include "includes/kratos_export_api.h" + +namespace Kratos +{ + +class KRATOS_API(GEO_MECHANICS_APPLICATION) ThreeDimensional : public ConstitutiveLawDimension +{ +public: + [[nodiscard]] Matrix FillConstitutiveMatrix(double c1, double c2, double c3) const override; + [[nodiscard]] std::unique_ptr Clone() const override; + [[nodiscard]] std::size_t GetStrainSize() const override; + [[nodiscard]] std::size_t GetDimension() const override; + [[nodiscard]] Flags GetSpatialType() const override; +}; + +} // namespace Kratos diff --git a/applications/GeoMechanicsApplication/geo_mechanics_application.cpp b/applications/GeoMechanicsApplication/geo_mechanics_application.cpp index ad88b04273bd..e12d897c16cf 100644 --- a/applications/GeoMechanicsApplication/geo_mechanics_application.cpp +++ b/applications/GeoMechanicsApplication/geo_mechanics_application.cpp @@ -351,6 +351,7 @@ void KratosGeoMechanicsApplication::Register() KRATOS_REGISTER_CONSTITUTIVE_LAW("LinearElasticPlaneStrainK02DLaw", mLinearPlaneStrainK0Law) KRATOS_REGISTER_CONSTITUTIVE_LAW("LinearElasticK03DLaw", mElasticIsotropicK03DLaw) KRATOS_REGISTER_CONSTITUTIVE_LAW("GeoLinearElasticPlaneStrain2DLaw", mLinearElasticPlaneStrain2DLaw) + KRATOS_REGISTER_CONSTITUTIVE_LAW("GeoIncrementalLinearElastic3DLaw", mLinearElastic3DLaw) KRATOS_REGISTER_CONSTITUTIVE_LAW("GeoLinearElasticPlaneStress2DLaw", mLinearElasticPlaneStress2DLaw) diff --git a/applications/GeoMechanicsApplication/geo_mechanics_application.h b/applications/GeoMechanicsApplication/geo_mechanics_application.h index e7a88c3b0e62..26a913491327 100644 --- a/applications/GeoMechanicsApplication/geo_mechanics_application.h +++ b/applications/GeoMechanicsApplication/geo_mechanics_application.h @@ -122,10 +122,10 @@ #include "custom_constitutive/bilinear_cohesive_3D_law.hpp" #include "custom_constitutive/elastic_isotropic_K0_3d_law.h" #include "custom_constitutive/incremental_linear_elastic_interface_law.h" +#include "custom_constitutive/incremental_linear_elastic_law.h" #include "custom_constitutive/linear_elastic_2D_beam_law.h" #include "custom_constitutive/linear_elastic_2D_interface_law.h" #include "custom_constitutive/linear_elastic_3D_interface_law.h" -#include "custom_constitutive/linear_elastic_plane_strain_2D_law.h" #include "custom_constitutive/linear_elastic_plane_strain_K0_law.h" #include "custom_constitutive/linear_elastic_plane_stress_2D_law.h" #include "custom_constitutive/plane_strain.h" @@ -137,6 +137,7 @@ #include "custom_constitutive/small_strain_umat_2D_plane_strain_law.hpp" #include "custom_constitutive/small_strain_umat_3D_interface_law.hpp" #include "custom_constitutive/small_strain_umat_3D_law.hpp" +#include "custom_constitutive/three_dimensional.h" #include "custom_constitutive/truss_backbone_constitutive_law.h" namespace Kratos @@ -958,8 +959,9 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) KratosGeoMechanicsApplication : publ const BilinearCohesive3DLaw mBilinearCohesive3DLaw; const BilinearCohesive2DLaw mBilinearCohesive2DLaw; const LinearPlaneStrainK0Law mLinearPlaneStrainK0Law; - const GeoLinearElasticPlaneStrain2DLaw mLinearElasticPlaneStrain2DLaw{std::make_unique()}; - const ElasticIsotropicK03DLaw mElasticIsotropicK03DLaw; + const GeoIncrementalLinearElasticLaw mLinearElasticPlaneStrain2DLaw{std::make_unique()}; + const GeoIncrementalLinearElasticLaw mLinearElastic3DLaw{std::make_unique()}; + const ElasticIsotropicK03DLaw mElasticIsotropicK03DLaw; const GeoLinearElasticPlaneStress2DLaw mLinearElasticPlaneStress2DLaw; const SmallStrainUDSM3DLaw mSmallStrainUDSM3DLaw{}; diff --git a/applications/GeoMechanicsApplication/tests/compressibility_tests/README.md b/applications/GeoMechanicsApplication/tests/compressibility_tests/README.md index 6d64ab09ab57..a01ae554685a 100644 --- a/applications/GeoMechanicsApplication/tests/compressibility_tests/README.md +++ b/applications/GeoMechanicsApplication/tests/compressibility_tests/README.md @@ -16,7 +16,7 @@ It checks the water pressure after a single stage of calculation on these single - Next to this, the X,Y displacements of the sides are fixed, meaning only the top nodes are free to move and only in the Z direction. - The water pressure in the top nodes is kept at 0.0. - Material: - - The material is described using a linear elastic material with a `LinearElastic3DLaw`, a Young's modulus + - The material is described using a linear elastic material with a `GeoIncrementalLinearElastic3DLaw`, a Young's modulus of 10000 [kPa] and a Poisson ratio of 0.0. - Loads: - Using the `ApplyVectorConstraintTableProcess`, a negative VOLUME_ACCELERATION of 9.81 [m/s^2] is applied in the z-direction to the entire cube. diff --git a/applications/GeoMechanicsApplication/tests/compressibility_tests/common/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/compressibility_tests/common/MaterialParameters.json index 46a5abbbda31..21b7f18fc994 100644 --- a/applications/GeoMechanicsApplication/tests/compressibility_tests/common/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/compressibility_tests/common/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : false, diff --git a/applications/GeoMechanicsApplication/tests/compressibility_tests/common/MaterialParameters_updated_lagrange.json b/applications/GeoMechanicsApplication/tests/compressibility_tests/common/MaterialParameters_updated_lagrange.json index da1a181e314b..cb614628d0e6 100644 --- a/applications/GeoMechanicsApplication/tests/compressibility_tests/common/MaterialParameters_updated_lagrange.json +++ b/applications/GeoMechanicsApplication/tests/compressibility_tests/common/MaterialParameters_updated_lagrange.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : false, diff --git a/applications/GeoMechanicsApplication/tests/cpp_tests/custom_constitutive/test_inremental_linear_elastic_3D_law.cpp b/applications/GeoMechanicsApplication/tests/cpp_tests/custom_constitutive/test_inremental_linear_elastic_3D_law.cpp new file mode 100644 index 000000000000..e357915eeabc --- /dev/null +++ b/applications/GeoMechanicsApplication/tests/cpp_tests/custom_constitutive/test_inremental_linear_elastic_3D_law.cpp @@ -0,0 +1,177 @@ +// KRATOS___ +// // ) ) +// // ___ ___ +// // ____ //___) ) // ) ) +// // / / // // / / +// ((____/ / ((____ ((___/ / MECHANICS +// +// License: geo_mechanics_application/license.txt +// +// Main authors: Richard Faasse +// Gennady Markelov +// + +#include "custom_constitutive/incremental_linear_elastic_law.h" +#include "custom_constitutive/three_dimensional.h" +#include "tests/cpp_tests/geo_mechanics_fast_suite.h" + +#include + +namespace +{ + +using namespace Kratos; + +Vector Calculate3DStress(GeoIncrementalLinearElasticLaw& rConstitutiveLaw) +{ + ConstitutiveLaw::Parameters parameters; + parameters.Set(ConstitutiveLaw::COMPUTE_CONSTITUTIVE_TENSOR); + parameters.Set(ConstitutiveLaw::COMPUTE_STRESS); + + auto strain = Vector{ScalarVector{6, 1.0}}; + parameters.SetStrainVector(strain); + + Vector stress; + parameters.SetStressVector(stress); + + Matrix constitutive_matrix; + parameters.SetConstitutiveMatrix(constitutive_matrix); + + Properties properties; + properties.SetValue(YOUNG_MODULUS, 1.0e7); + properties.SetValue(POISSON_RATIO, 0.3); + parameters.SetMaterialProperties(properties); + + rConstitutiveLaw.CalculateMaterialResponsePK2(parameters); + + return stress; +} + +GeoIncrementalLinearElasticLaw CreateIncrementalLinearElastic3DLaw() +{ + return GeoIncrementalLinearElasticLaw{std::make_unique()}; +} + +} // namespace + +namespace Kratos::Testing +{ + +KRATOS_TEST_CASE_IN_SUITE(GeoIncrementalLinearElastic3DLawReturnsExpectedLawFeatures, KratosGeoMechanicsFastSuiteWithoutKernel) +{ + auto law = CreateIncrementalLinearElastic3DLaw(); + + ConstitutiveLaw::Features law_features; + law.GetLawFeatures(law_features); + + KRATOS_EXPECT_TRUE(law_features.mOptions.Is(ConstitutiveLaw::THREE_DIMENSIONAL_LAW)) + KRATOS_EXPECT_TRUE(law_features.mOptions.Is(ConstitutiveLaw::INFINITESIMAL_STRAINS)) + KRATOS_EXPECT_TRUE(law_features.mOptions.Is(ConstitutiveLaw::ISOTROPIC)) + + const auto& strain_measures = law_features.mStrainMeasures; + KRATOS_EXPECT_NE(std::find(strain_measures.begin(), strain_measures.end(), ConstitutiveLaw::StrainMeasure_Infinitesimal), + strain_measures.end()); + KRATOS_EXPECT_NE(std::find(strain_measures.begin(), strain_measures.end(), + ConstitutiveLaw::StrainMeasure_Deformation_Gradient), + strain_measures.end()); + + KRATOS_EXPECT_EQ(law_features.mStrainSize, 6); + KRATOS_EXPECT_EQ(law_features.mSpaceDimension, 3); +} + +KRATOS_TEST_CASE_IN_SUITE(GeoIncrementalLinearElastic3DLawReturnsExpectedStrainSize, KratosGeoMechanicsFastSuiteWithoutKernel) +{ + const auto law = CreateIncrementalLinearElastic3DLaw(); + KRATOS_EXPECT_EQ(law.GetStrainSize(), 6); +} + +KRATOS_TEST_CASE_IN_SUITE(GeoIncrementalLinearElastic3DLawReturnsExpectedWorkingSpaceDimension, + KratosGeoMechanicsFastSuiteWithoutKernel) +{ + auto law = CreateIncrementalLinearElastic3DLaw(); + KRATOS_EXPECT_EQ(law.WorkingSpaceDimension(), 3); +} + +KRATOS_TEST_CASE_IN_SUITE(GeoIncrementalLinearElastic3DLawReturnsExpectedStress, KratosGeoMechanicsFastSuiteWithoutKernel) +{ + auto law = CreateIncrementalLinearElastic3DLaw(); + + const auto stress = Calculate3DStress(law); + + Vector expected_stress{6}; + expected_stress <<= 2.5e+07, 2.5e+07, 2.5e+07, 3.84615e+06, 3.84615e+06, 3.84615e+06; + KRATOS_EXPECT_VECTOR_RELATIVE_NEAR(expected_stress, stress, 1e-3); +} + +KRATOS_TEST_CASE_IN_SUITE(GeoIncrementalLinearElastic3DLawReturnsExpectedStress_WhenOnlyDiagonalEntriesAreConsidered, + KratosGeoMechanicsFastSuiteWithoutKernel) +{ + auto law = CreateIncrementalLinearElastic3DLaw(); + law.SetConsiderDiagonalEntriesOnlyAndNoShear(true); + + const auto stress = Calculate3DStress(law); + + Vector expected_stress{6}; + expected_stress <<= 1.34615e+07, 1.34615e+07, 1.34615e+07, 0, 0, 0; + KRATOS_EXPECT_VECTOR_RELATIVE_NEAR(expected_stress, stress, 1e-3); +} + +KRATOS_TEST_CASE_IN_SUITE(GeoIncrementalLinearElastic3DLawReturnsExpectedStress_WithInitialStressAndStrain, + KratosGeoMechanicsFastSuiteWithoutKernel) +{ + auto law = CreateIncrementalLinearElastic3DLaw(); + + ConstitutiveLaw::Parameters parameters; + auto initial_strain = Vector{ScalarVector{6, 0.5}}; + parameters.SetStrainVector(initial_strain); + auto initial_stress = Vector{ScalarVector{6, 1e6}}; + parameters.SetStressVector(initial_stress); + law.InitializeMaterialResponseCauchy(parameters); + + const auto stress = Calculate3DStress(law); + + Vector expected_stress{6}; + expected_stress <<= 1.35e+07, 1.35e+07, 1.35e+07, 2.92308e+06, 2.92308e+06, 2.92308e+06; + KRATOS_EXPECT_VECTOR_RELATIVE_NEAR(expected_stress, stress, 1e-3); +} + +KRATOS_TEST_CASE_IN_SUITE(GeoIncrementalLinearElastic3DLawReturnsExpectedStress_AfterFinalizeMaterialResponse, + KratosGeoMechanicsFastSuiteWithoutKernel) +{ + auto law = CreateIncrementalLinearElastic3DLaw(); + + ConstitutiveLaw::Parameters initial_parameters; + auto initial_strain = Vector{ScalarVector{6, 0.5}}; + initial_parameters.SetStrainVector(initial_strain); + auto initial_stress = Vector{ScalarVector{6, 1e6}}; + initial_parameters.SetStressVector(initial_stress); + law.InitializeMaterialResponseCauchy(initial_parameters); + + auto stress = Calculate3DStress(law); + + ConstitutiveLaw::Parameters final_parameters; + auto final_strain = Vector{ScalarVector{6, 1.3}}; + final_parameters.SetStrainVector(final_strain); + law.FinalizeMaterialResponseCauchy(final_parameters); + stress = Calculate3DStress(law); + + Vector expected_stress{6}; + expected_stress <<= 6e+06, 6e+06, 6e+06, 1.76923e+06, 1.76923e+06, 1.76923e+06; + KRATOS_EXPECT_VECTOR_RELATIVE_NEAR(expected_stress, stress, 1e-3); +} + +#ifdef KRATOS_DEBUG +KRATOS_TEST_CASE_IN_SUITE(GeoIncrementalLinearElastic3DLawThrows_WhenElementProvidedStrainIsSetToFalse, + KratosGeoMechanicsFastSuiteWithoutKernel) +{ + auto law = CreateIncrementalLinearElastic3DLaw(); + + ConstitutiveLaw::Parameters parameters; + parameters.GetOptions().Set(ConstitutiveLaw::USE_ELEMENT_PROVIDED_STRAIN, false); + + KRATOS_EXPECT_EXCEPTION_IS_THROWN(law.CalculateMaterialResponsePK2(parameters), + "The GeoLinearElasticLaw needs an element provided strain"); +} +#endif + +} // namespace Kratos::Testing \ No newline at end of file diff --git a/applications/GeoMechanicsApplication/tests/cpp_tests/custom_constitutive/test_linear_elastic_plane_strain_2D_law.cpp b/applications/GeoMechanicsApplication/tests/cpp_tests/custom_constitutive/test_linear_elastic_plane_strain_2D_law.cpp index 8e7629e239bd..6b1d44887efa 100644 --- a/applications/GeoMechanicsApplication/tests/cpp_tests/custom_constitutive/test_linear_elastic_plane_strain_2D_law.cpp +++ b/applications/GeoMechanicsApplication/tests/cpp_tests/custom_constitutive/test_linear_elastic_plane_strain_2D_law.cpp @@ -10,7 +10,7 @@ // Main authors: Richard Faasse // -#include "custom_constitutive/linear_elastic_plane_strain_2D_law.h" +#include "custom_constitutive/incremental_linear_elastic_law.h" #include "custom_constitutive/plane_strain.h" #include "tests/cpp_tests/geo_mechanics_fast_suite.h" @@ -21,7 +21,7 @@ namespace using namespace Kratos; -Vector CalculateStress(GeoLinearElasticPlaneStrain2DLaw& rConstitutiveLaw) +Vector CalculateStress(GeoIncrementalLinearElasticLaw& rConstitutiveLaw) { ConstitutiveLaw::Parameters parameters; parameters.Set(ConstitutiveLaw::COMPUTE_CONSTITUTIVE_TENSOR); @@ -46,9 +46,9 @@ Vector CalculateStress(GeoLinearElasticPlaneStrain2DLaw& rConstitutiveLaw) return stress; } -GeoLinearElasticPlaneStrain2DLaw CreateLinearElasticPlaneStrainLaw() +GeoIncrementalLinearElasticLaw CreateLinearElasticPlaneStrainLaw() { - return GeoLinearElasticPlaneStrain2DLaw{std::make_unique()}; + return GeoIncrementalLinearElasticLaw{std::make_unique()}; } } // namespace @@ -61,7 +61,7 @@ KRATOS_TEST_CASE_IN_SUITE(GeoLinearElasticPlaneStrain2DLawReturnsCloneOfCorrectT const auto law = CreateLinearElasticPlaneStrainLaw(); const auto p_law_clone = law.Clone(); KRATOS_EXPECT_NE(&law, p_law_clone.get()); - KRATOS_EXPECT_NE(dynamic_cast(p_law_clone.get()), nullptr); + KRATOS_EXPECT_NE(dynamic_cast(p_law_clone.get()), nullptr); } KRATOS_TEST_CASE_IN_SUITE(GeoLinearElasticPlaneStrain2DLawRequiresInitializeResponse, KratosGeoMechanicsFastSuiteWithoutKernel) diff --git a/applications/GeoMechanicsApplication/tests/hexa_8n_normal_load/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/hexa_8n_normal_load/MaterialParameters.json index d310cd52c605..85faf370cfc4 100644 --- a/applications/GeoMechanicsApplication/tests/hexa_8n_normal_load/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/hexa_8n_normal_load/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/hexa_8n_normal_load/README.md b/applications/GeoMechanicsApplication/tests/hexa_8n_normal_load/README.md index aeab1a016695..3f65b4a8ea0a 100644 --- a/applications/GeoMechanicsApplication/tests/hexa_8n_normal_load/README.md +++ b/applications/GeoMechanicsApplication/tests/hexa_8n_normal_load/README.md @@ -11,7 +11,7 @@ A schematic depiction of the test case is shown below: - Constraints: - The X, Y and Z displacements in the bottom four nodes (1, 2, 3 and 4) are fixed. - Material: - - The material is described using a linear elastic material with a `LinearElastic3DLaw`, a Young's modulus + - The material is described using a linear elastic material with a `GeoIncrementalLinearElastic3DLaw`, a Young's modulus of 3.0e7 [kPa] and a Poisson ratio of 0.0. - Conditions: - A UpwNormalFaceLoadCondition3D4N is added to the top of the cube (nodes 5, 6, 7 and 8). diff --git a/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D2N_hex.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D2N_hex.gid/MaterialParameters.json index 18f79d689b73..0d952d8b52aa 100644 --- a/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D2N_hex.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D2N_hex.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D2N_tet.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D2N_tet.gid/MaterialParameters.json index 18f79d689b73..0d952d8b52aa 100644 --- a/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D2N_tet.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D2N_tet.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D3N_hex.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D3N_hex.gid/MaterialParameters.json index 18f79d689b73..0d952d8b52aa 100644 --- a/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D3N_hex.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D3N_hex.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D3N_tet.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D3N_tet.gid/MaterialParameters.json index 18f79d689b73..0d952d8b52aa 100644 --- a/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D3N_tet.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/line_load_tests/line_load_3D3N_tet.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/README.md b/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/README.md index 547c7691d14c..5e9f318dcb3b 100644 --- a/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/README.md +++ b/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/README.md @@ -30,7 +30,7 @@ The mesh with hexa elements is given in the following figure. The material is described using: -- A linear elastic 3D model (LinearElastic3DLaw), +- A linear elastic 3D model (GeoIncrementalLinearElastic3DLaw), - Young's modulus is $E$=10 $[MPa]$ - Poisson's ratio is $\nu$=0.2, - Density of solid is $\rho$=2.65 $[ton/m^3]$, diff --git a/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/hexa_mesh_in_Z/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/hexa_mesh_in_Z/MaterialParameters.json index 254d40578c1f..aae12b2fa9c0 100644 --- a/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/hexa_mesh_in_Z/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/hexa_mesh_in_Z/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/tetra_mesh_in_Y/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/tetra_mesh_in_Y/MaterialParameters.json index 254d40578c1f..aae12b2fa9c0 100644 --- a/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/tetra_mesh_in_Y/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/tetra_mesh_in_Y/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/tetra_mesh_in_Z/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/tetra_mesh_in_Z/MaterialParameters.json index 254d40578c1f..aae12b2fa9c0 100644 --- a/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/tetra_mesh_in_Z/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/lysmer_boundary_column3D/tetra_mesh_in_Z/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/test_dynamic/test_constant_point_load_3d/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/test_dynamic/test_constant_point_load_3d/MaterialParameters.json index a55926a995d9..9549de6861d3 100644 --- a/applications/GeoMechanicsApplication/tests/test_dynamic/test_constant_point_load_3d/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/test_dynamic/test_constant_point_load_3d/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id" : 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "YOUNG_MODULUS" : 91800.0, diff --git a/applications/GeoMechanicsApplication/tests/test_inclinded_phreatic_surface.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/test_inclinded_phreatic_surface.gid/MaterialParameters.json index 7b493b17f409..339b2af5cff6 100644 --- a/applications/GeoMechanicsApplication/tests/test_inclinded_phreatic_surface.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/test_inclinded_phreatic_surface.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/test_inclinded_phreatic_surface_time_dependent.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/test_inclinded_phreatic_surface_time_dependent.gid/MaterialParameters.json index 7b493b17f409..339b2af5cff6 100644 --- a/applications/GeoMechanicsApplication/tests/test_inclinded_phreatic_surface_time_dependent.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/test_inclinded_phreatic_surface_time_dependent.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/test_normal_load_tetra_10n.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/test_normal_load_tetra_10n.gid/MaterialParameters.json index 648564ae7f44..55d93a6ae255 100644 --- a/applications/GeoMechanicsApplication/tests/test_normal_load_tetra_10n.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/test_normal_load_tetra_10n.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/test_tetra_10n.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/test_tetra_10n.gid/MaterialParameters.json index 9ea6bdde2398..226c22a87639 100644 --- a/applications/GeoMechanicsApplication/tests/test_tetra_10n.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/test_tetra_10n.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/test_tetra_4n.gid/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/test_tetra_4n.gid/MaterialParameters.json index 9ea6bdde2398..226c22a87639 100644 --- a/applications/GeoMechanicsApplication/tests/test_tetra_4n.gid/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/test_tetra_4n.gid/MaterialParameters.json @@ -4,7 +4,7 @@ "properties_id": 1, "Material": { "constitutive_law": { - "name" : "LinearElastic3DLaw" + "name" : "GeoIncrementalLinearElastic3DLaw" }, "Variables": { "IGNORE_UNDRAINED" : true, diff --git a/applications/GeoMechanicsApplication/tests/test_time_integration/MaterialParameters.json b/applications/GeoMechanicsApplication/tests/test_time_integration/MaterialParameters.json index ed37f89fc44d..6f547a93293f 100644 --- a/applications/GeoMechanicsApplication/tests/test_time_integration/MaterialParameters.json +++ b/applications/GeoMechanicsApplication/tests/test_time_integration/MaterialParameters.json @@ -24,7 +24,7 @@ "DENSITY_WATER": 1000 }, "constitutive_law": { - "name": "LinearElastic3DLaw" + "name": "GeoIncrementalLinearElastic3DLaw" } }, "Tables": {} @@ -53,7 +53,7 @@ "DENSITY_WATER": 1000 }, "constitutive_law": { - "name": "LinearElastic3DLaw" + "name": "GeoIncrementalLinearElastic3DLaw" } }, "Tables": {} @@ -82,7 +82,7 @@ "DENSITY_WATER": 1000 }, "constitutive_law": { - "name": "LinearElastic3DLaw" + "name": "GeoIncrementalLinearElastic3DLaw" } }, "Tables": {}