Commit 2c755dc5 authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#1408 Second Piola Kirchhoff operator: Rename ActiveStress policy InternalVariable.

parent 21511b0c
<!-- toc -->
- [Install Miniconda environment](#install-miniconda-environment)
- [Install third party libraries](#install-third-party-libraries)
- [Install gitlab-runner](#install-gitlab-runner)
* [As an administrator:](#as-an-administrator)
* [As CI user:](#as-ci-user)
<!-- tocstop -->
# Install Miniconda environment
......
......@@ -8692,7 +8692,7 @@
BE8C36971DB50FB500919468 /* SecondPiolaKirchhoffStressTensor */ = {
isa = PBXGroup;
children = (
BE8C36981DB50FB500919468 /* ActiveStressPolicy */,
BE8C36981DB50FB500919468 /* InternalVariablePolicy */,
BE8C36A11DB50FB500919468 /* HyperelasticityPolicy */,
BE8C36A61DB50FB500919468 /* Internal */,
BE8C36AC1DB50FB500919468 /* ViscoelasticityPolicy */,
......@@ -8700,7 +8700,7 @@
path = SecondPiolaKirchhoffStressTensor;
sourceTree = "<group>";
};
BE8C36981DB50FB500919468 /* ActiveStressPolicy */ = {
BE8C36981DB50FB500919468 /* InternalVariablePolicy */ = {
isa = PBXGroup;
children = (
BE8C36991DB50FB500919468 /* AnalyticalPrestress.hpp */,
......@@ -8711,7 +8711,7 @@
BE8C369F1DB50FB500919468 /* None.cpp */,
BE8C36A01DB50FB500919468 /* None.hpp */,
);
path = ActiveStressPolicy;
path = InternalVariablePolicy;
sourceTree = "<group>";
};
BE8C36A11DB50FB500919468 /* HyperelasticityPolicy */ = {
......@@ -8751,7 +8751,7 @@
isa = PBXGroup;
children = (
BE8C36C41DB50FB500919468 /* SecondPiolaKirchhoffStressTensor.doxygen */,
BE8C36B81DB50FB500919468 /* ActiveStressPolicy */,
BE8C36B81DB50FB500919468 /* InternalVariablePolicy */,
BE8C36BF1DB50FB500919468 /* HyperelasticityPolicy */,
BE8C36C51DB50FB500919468 /* ViscoelasticityPolicy */,
BE53013C1E774390004CA0BA /* Internal */,
......@@ -8759,7 +8759,7 @@
path = SecondPiolaKirchhoffStressTensor;
sourceTree = "<group>";
};
BE8C36B81DB50FB500919468 /* ActiveStressPolicy */ = {
BE8C36B81DB50FB500919468 /* InternalVariablePolicy */ = {
isa = PBXGroup;
children = (
BE8C36B91DB50FB500919468 /* AnalyticalPrestress.hpp */,
......@@ -8767,7 +8767,7 @@
BE8C36BB1DB50FB500919468 /* Internal */,
BE8C36BE1DB50FB500919468 /* None.hpp */,
);
path = ActiveStressPolicy;
path = InternalVariablePolicy;
sourceTree = "<group>";
};
BE8C36BB1DB50FB500919468 /* Internal */ = {
......@@ -27,7 +27,7 @@
# include "OperatorInstances/HyperelasticLaws/CiarletGeymonat.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/SecondPiolaKirchhoffStressTensor/ViscoelasticityPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/SecondPiolaKirchhoffStressTensor/ActiveStressPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/SecondPiolaKirchhoffStressTensor/InternalVariablePolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/Internal/Helper.hpp"
......@@ -87,8 +87,8 @@ namespace MoReFEM
GlobalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::ViscoelasticityPolicyNS::None;
//! Alias to the active stress policy used.
using ActiveStressPolicy =
GlobalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::None;
using InternalVariablePolicy =
GlobalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::None;
//! Alias to the hyperelasticity policy used.
using hyperelasticity_policy =
......@@ -110,7 +110,7 @@ namespace MoReFEM
<
hyperelasticity_policy,
ViscoelasticityPolicy,
ActiveStressPolicy
InternalVariablePolicy
>;
public:
......
......@@ -25,7 +25,7 @@
# include "OperatorInstances/HyperelasticLaws/MooneyRivlin.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/SecondPiolaKirchhoffStressTensor/ViscoelasticityPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/SecondPiolaKirchhoffStressTensor/ActiveStressPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/SecondPiolaKirchhoffStressTensor/InternalVariablePolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/FollowingPressure.hpp"
......@@ -114,8 +114,8 @@ namespace MoReFEM
GlobalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::ViscoelasticityPolicyNS::None;
//! Alias to acgtive stress policy.
using ActiveStressPolicy =
GlobalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::None;
using InternalVariablePolicy =
GlobalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::None;
//! Alias to the type of the stiffness operator to use.
using StiffnessOperatorType =
......@@ -123,7 +123,7 @@ namespace MoReFEM
<
hyperelasticity_policy,
ViscoelasticityPolicy,
ActiveStressPolicy
InternalVariablePolicy
>;
//! Alias on a pair of Unknown.
......
......@@ -38,7 +38,7 @@
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/Internal/PartialSpecialization.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/HyperelasticityPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/ViscoelasticityPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/ActiveStressPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/InternalVariablePolicy/None.hpp"
namespace MoReFEM
......@@ -60,26 +60,26 @@ namespace MoReFEM
*
* \tparam HyperelasticityPolicyT Policy that defines if an hyperelastic contribution is present in the tensor.
* \tparam ViscoelasticityPolicyT Policy that defines if an viscoelastic contribution is present in the tensor.
* \tparam ActiveStressPolicyT Policy that defines if an active stress contribution is present in the tensor.
* \tparam InternalVariablePolicyT Policy that defines if an active stress contribution is present in the tensor.
*
*/
template
<
class HyperelasticityPolicyT,
class ViscoelasticityPolicyT,
class ActiveStressPolicyT
class InternalVariablePolicyT
>
class SecondPiolaKirchhoffStressTensor final
: public HyperelasticityPolicyT,
public ViscoelasticityPolicyT,
public ActiveStressPolicyT,
public InternalVariablePolicyT,
public NonlinearLocalVariationalOperator
<
LocalMatrix,
LocalVector
>,
public Crtp::LocalMatrixStorage<SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>, 9ul>,
public Crtp::LocalVectorStorage<SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>, 2ul>
public Crtp::LocalMatrixStorage<SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>, 9ul>,
public Crtp::LocalVectorStorage<SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>, 2ul>
{
public:
......@@ -90,7 +90,7 @@ namespace MoReFEM
<
HyperelasticityPolicyT,
ViscoelasticityPolicyT,
ActiveStressPolicyT
InternalVariablePolicyT
>;
//! Alias to unique pointer.
......@@ -122,7 +122,7 @@ namespace MoReFEM
using elementary_data_type = typename parent::elementary_data_type;
//! Alias to the type of the input of the active stress policy.
using input_active_stress_policy_type = typename ActiveStressPolicyT::input_active_stress_policy_type;
using input_internal_variable_policy_type = typename InternalVariablePolicyT::input_internal_variable_policy_type;
public:
......@@ -141,7 +141,8 @@ namespace MoReFEM
* \param[in] hyperelastic_law The hyperelastic law if there is an hyperelastic part in the operator,
* or nullptr otherwise. Example of hyperelasticlaw is MoReFEM::HyperelasticLawNS::CiarletGeymonat.
* \copydoc doxygen_hide_time_manager_arg
* \param[in] input_active_stress_policy Object involved with the active stress policy.
* \param[in] input_internal_variable_policy Object involved with the internal variable (such as active
* stress) policy.
*
* \internal <b><tt>[internal]</tt></b> This constructor must not be called manually: it is involved only in
* GlobalVariationalOperator<DerivedT, LocalVariationalOperatorT>::CreateLocalOperatorList() method.
......@@ -152,7 +153,7 @@ namespace MoReFEM
const Solid& solid,
const TimeManager& time_manager,
const typename HyperelasticityPolicyT::law_type* hyperelastic_law,
input_active_stress_policy_type* input_active_stress_policy);
input_internal_variable_policy_type* input_internal_variable_policy);
//! Destructor.
virtual ~SecondPiolaKirchhoffStressTensor();
......@@ -192,7 +193,7 @@ namespace MoReFEM
std::vector<double>& GetNonCstFormerLocalDisplacement() noexcept;
//! Method to update internal variables of the active stress policy.
void UpdateActiveStressInternalVariables();
void UpdateInternalVariableInternalVariables();
//! Set Cauchy-Green tensor \a Parameter. Must be called only once.
//! \param[in] param The parameter computed outside of the class.
......
......@@ -28,39 +28,39 @@ namespace MoReFEM
{
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
const std::string& SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>::ClassName()
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
const std::string& SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>::ClassName()
{
static std::string name("SecondPiolaKirchhoffStressTensor");
return name;
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::~SecondPiolaKirchhoffStressTensor() = default;
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::SecondPiolaKirchhoffStressTensor(const ExtendedUnknown::vector_const_shared_ptr& unknown_list,
const ExtendedUnknown::vector_const_shared_ptr& test_unknown_list,
elementary_data_type&& a_elementary_data,
const Solid& solid,
const TimeManager& time_manager,
const typename HyperelasticityPolicyT::law_type* hyperelastic_law,
input_active_stress_policy_type* input_active_stress_policy)
input_internal_variable_policy_type* input_internal_variable_policy)
: HyperelasticityPolicyT(a_elementary_data.GetMeshDimension(), hyperelastic_law),
ViscoelasticityPolicyT(a_elementary_data.GetMeshDimension(),
a_elementary_data.NdofRow(),
a_elementary_data.GetGeomEltDimension(),
solid,
time_manager),
ActiveStressPolicyT(a_elementary_data.GetMeshDimension(),
InternalVariablePolicyT(a_elementary_data.GetMeshDimension(),
a_elementary_data.NnodeRow(),
a_elementary_data.NquadraturePoint(),
time_manager,
input_active_stress_policy),
input_internal_variable_policy),
parent(unknown_list, test_unknown_list, std::move(a_elementary_data)),
matrix_parent(),
vector_parent()
......@@ -126,8 +126,8 @@ namespace MoReFEM
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::ComputeEltArray()
{
auto& elementary_data = parent::GetNonCstElementaryData();
......@@ -160,27 +160,27 @@ namespace MoReFEM
elementary_data);
}
const auto& active_stress_ptr = static_cast<ActiveStressPolicyT*>(this);
auto& active_stress = *active_stress_ptr;
const auto& internal_variable_ptr = static_cast<InternalVariablePolicyT*>(this);
auto& internal_variable = *internal_variable_ptr;
using dispatcher
= typename Internal::LocalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS
::CorrectRHSWithActiveSchurComplement<ActiveStressPolicyT>;
::CorrectRHSWithActiveSchurComplement<InternalVariablePolicyT>;
dispatcher::Perform(active_stress,
dispatcher::Perform(internal_variable,
elementary_data.GetNonCstVectorResult());
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
::UpdateActiveStressInternalVariables()
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::UpdateInternalVariableInternalVariables()
{
auto& elementary_data = parent::GetNonCstElementaryData();
const auto& infos_at_quad_pt_list = elementary_data.GetInformationsAtQuadraturePointList();
const auto& active_stress_ptr = static_cast<ActiveStressPolicyT*>(this);
auto& active_stress = *active_stress_ptr;
const auto& internal_variable_ptr = static_cast<InternalVariablePolicyT*>(this);
auto& internal_variable = *internal_variable_ptr;
const auto& geom_elt = elementary_data.GetCurrentGeomElt();
......@@ -188,17 +188,17 @@ namespace MoReFEM
{
auto& quad_pt = infos_at_quad_pt.GetQuadraturePoint();
active_stress.UpdateInternalVariables(quad_pt,
internal_variable.UpdateInternalVariables(quad_pt,
geom_elt,
infos_at_quad_pt.GetUnknownData().GetRefFEltPhi(),
active_stress.GetFiberDeformationAtCurrentTimeIteration().GetValue(quad_pt, geom_elt),
active_stress.GetFiberDeformationAtPreviousTimeIteration().GetValue(quad_pt, geom_elt));
internal_variable.GetFiberDeformationAtCurrentTimeIteration().GetValue(quad_pt, geom_elt),
internal_variable.GetFiberDeformationAtPreviousTimeIteration().GetValue(quad_pt, geom_elt));
}
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::ComputeAtQuadraturePoint(const InformationsAtQuadraturePoint& infos_at_quad_pt,
const LocalMatrix& tangent_matrix,
const LocalVector& rhs_part,
......@@ -298,9 +298,9 @@ namespace MoReFEM
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
template<unsigned int DimensionT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::ComputeWDerivates(const Advanced::LocalVariationalOperatorNS::InfosAtQuadPointNS::ForUnknownList& quad_pt_unknown_list_data,
const GeometricElt& geom_elt,
const Advanced::RefFEltInLocalOperator& ref_felt,
......@@ -331,19 +331,19 @@ namespace MoReFEM
dW,
d2W);
const auto& active_stress_ptr = static_cast<ActiveStressPolicyT*>(this);
auto& active_stress = *active_stress_ptr;
const auto& internal_variable_ptr = static_cast<InternalVariablePolicyT*>(this);
auto& internal_variable = *internal_variable_ptr;
using dispatcher2
= typename Internal::LocalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS
::ComputeWDerivatesActiveStress<DimensionT, ActiveStressPolicyT>;
::ComputeWDerivatesInternalVariable<DimensionT, InternalVariablePolicyT>;
dispatcher2::Perform(quad_pt_unknown_list_data,
geom_elt,
ref_felt,
cauchy_green_tensor_value,
transposed_De,
active_stress,
internal_variable,
dW,
d2W);
......@@ -365,8 +365,8 @@ namespace MoReFEM
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::PrepareInternalDataForQuadraturePoint(const InfosAtQuadPointNS::ForUnknownList& quad_pt_unknown_list_data,
const GeometricElt& geom_elt,
const Advanced::RefFEltInLocalOperator& ref_felt,
......@@ -405,9 +405,9 @@ namespace MoReFEM
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
inline const std::vector<double>&
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::GetFormerLocalDisplacement() const noexcept
{
return former_local_displacement_;
......@@ -415,9 +415,9 @@ namespace MoReFEM
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
DerivativeGreenLagrange<GreenLagrangeOrEta::green_lagrange>&
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::GetNonCstDerivativeGreenLagrange() noexcept
{
assert(!(!deriv_green_lagrange_));
......@@ -425,18 +425,18 @@ namespace MoReFEM
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
inline std::vector<double>&
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::GetNonCstFormerLocalDisplacement() noexcept
{
return const_cast<std::vector<double>&>(GetFormerLocalDisplacement());
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
template<unsigned int DimensionT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::PrepareInternalDataForQuadraturePointForDimension(const InfosAtQuadPointNS::ForUnknownList& quad_pt_unknown_list_data,
const GeometricElt& geom_elt,
const Advanced::RefFEltInLocalOperator& ref_felt,
......@@ -524,8 +524,8 @@ namespace MoReFEM
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
void SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::SetCauchyGreenTensor(const ParameterAtQuadraturePoint<ParameterNS::Type::vector, ParameterNS::TimeDependencyNS::None>* param)
{
assert(cauchy_green_tensor_ == nullptr && "Should be called only once.");
......@@ -533,9 +533,9 @@ namespace MoReFEM
}
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class ActiveStressPolicyT>
template <class HyperelasticityPolicyT, class ViscoelasticityPolicyT, class InternalVariablePolicyT>
inline const ParameterAtQuadraturePoint<ParameterNS::Type::vector, ParameterNS::TimeDependencyNS::None>&
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, ActiveStressPolicyT>
SecondPiolaKirchhoffStressTensor<HyperelasticityPolicyT, ViscoelasticityPolicyT, InternalVariablePolicyT>
::GetCauchyGreenTensor() const noexcept
{
assert(!(!cauchy_green_tensor_));
......
......@@ -19,9 +19,9 @@
# include <vector>
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/HyperelasticityPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/ActiveStressPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/InternalVariablePolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/ViscoelasticityPolicy/None.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/ActiveStressPolicy/AnalyticalPrestress.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/InternalVariablePolicy/AnalyticalPrestress.hpp"
namespace MoReFEM
......@@ -48,7 +48,7 @@ namespace MoReFEM
namespace HyperelasticityPolicyNS = AdvancedCounterpart::HyperelasticityPolicyNS;
//! \copydoc doxygen_hide_namespace_cluttering
namespace ActiveStressPolicyNS = AdvancedCounterpart::ActiveStressPolicyNS;
namespace InternalVariablePolicyNS = AdvancedCounterpart::InternalVariablePolicyNS;
//! \copydoc doxygen_hide_namespace_cluttering
namespace ViscoelasticityPolicyNS = AdvancedCounterpart::ViscoelasticityPolicyNS;
......@@ -105,24 +105,24 @@ namespace MoReFEM
/*!
* \brief Helper struct used to call SecondPiolaKirchhoffStressTensor::ComputeWDerivates() if the
* ActiveStressPolicyT is not ActiveStressPolicyT::None.
* InternalVariablePolicyT is not InternalVariablePolicyT::None.
*
*/
template<unsigned int DimensionT, class ActiveStressPolicyT>
struct ComputeWDerivatesActiveStress
template<unsigned int DimensionT, class InternalVariablePolicyT>
struct ComputeWDerivatesInternalVariable
{
/*!
* \copydoc doxygen_hide_second_piola_compute_W_derivates_active_stress
* \param[in,out] active_stress Object which contains relevant data about active stress.
* \copydoc doxygen_hide_second_piola_compute_W_derivates_internal_variable
* \param[in,out] internal_variable Object which contains relevant data about active stress.
*/
static void Perform(const ::MoReFEM::Advanced::LocalVariationalOperatorNS::InfosAtQuadPointNS::ForUnknownList& quad_pt_unknown_list_data,
const GeometricElt& geom_elt,
const Advanced::RefFEltInLocalOperator& ref_felt,
const LocalVector& cauchy_green_tensor_value,
const LocalMatrix& transposed_De,
ActiveStressPolicyT& active_stress,
InternalVariablePolicyT& internal_variable,
LocalVector& dW,
LocalMatrix& d2W);
......@@ -132,14 +132,14 @@ namespace MoReFEM
/*!
* \brief Helper struct used to call SecondPiolaKirchhoffStressTensor::ComputeWDerivates() if the
* ActiveStressPolicyT is ActiveStressPolicyT::None.
* InternalVariablePolicyT is InternalVariablePolicyT::None.
*
* \internal <b><tt>[internal]</tt></b> Using this struct allows not to define a full-fledged ActiveStressPolicyT::None policy
* \internal <b><tt>[internal]</tt></b> Using this struct allows not to define a full-fledged InternalVariablePolicyT::None policy
* in which all the methods would be asked to do nothing.
*
*/
template <unsigned int DimensionT>
struct ComputeWDerivatesActiveStress<DimensionT, ActiveStressPolicyNS::None>
struct ComputeWDerivatesInternalVariable<DimensionT, InternalVariablePolicyNS::None>
{
......@@ -149,7 +149,7 @@ namespace MoReFEM
const Advanced::RefFEltInLocalOperator& ,
const LocalVector& ,
const LocalMatrix& ,
ActiveStressPolicyNS::None& ,
InternalVariablePolicyNS::None& ,
LocalVector& ,
LocalMatrix& );
......@@ -158,10 +158,10 @@ namespace MoReFEM
/*!
* \brief Helper struct used to call SecondPiolaKirchhoffStressTensor::CorrectRHSWithActiveSchurComplement() if the
* ActiveStressPolicyT is not ActiveStressPolicyT::None.
* InternalVariablePolicyT is not InternalVariablePolicyT::None.
*
*/
template<class ActiveStressPolicyT>
template<class InternalVariablePolicyT>
struct CorrectRHSWithActiveSchurComplement
{
......@@ -169,10 +169,10 @@ namespace MoReFEM
/*!
* \brief Add active schur complement to RHS.
*
* \param[in,out] active_stress Object that manages active stress data.
* \param[in,out] internal_variable Object that manages internal variable data.
* \param[in,out] rhs Rhs being modified.
*/
static void Perform(ActiveStressPolicyT& active_stress,
static void Perform(InternalVariablePolicyT& internal_variable,
LocalVector& rhs);
};
......@@ -180,24 +180,24 @@ namespace MoReFEM
/*!
* \brief Helper struct used to call SecondPiolaKirchhoffStressTensor::CorrectRHSWithActiveSchurComplement() if the
* ActiveStressPolicyT is ActiveStressPolicyT::AnalyticalPrestress.
* InternalVariablePolicyT is InternalVariablePolicyT::AnalyticalPrestress.
*
* \internal <b><tt>[internal]</tt></b> Using this struct allows not to define the method for
* ActiveStressPolicyT::AnalyticalPrestress policy.
* InternalVariablePolicyT::AnalyticalPrestress policy.
*
*/
template <unsigned int FiberIndexT>
struct CorrectRHSWithActiveSchurComplement<ActiveStressPolicyNS::AnalyticalPrestress<FiberIndexT>>
struct CorrectRHSWithActiveSchurComplement<InternalVariablePolicyNS::AnalyticalPrestress<FiberIndexT>>
{
/*!