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

#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.
......
......@@ -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>>
{
/*!
* \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(ActiveStressPolicyNS::AnalyticalPrestress<FiberIndexT>& active_stress,
static void Perform(InternalVariablePolicyNS::AnalyticalPrestress<FiberIndexT>& internal_variable,
LocalVector& rhs);
......@@ -206,19 +206,19 @@ 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 <>
struct CorrectRHSWithActiveSchurComplement<ActiveStressPolicyNS::None>
struct CorrectRHSWithActiveSchurComplement<InternalVariablePolicyNS::None>
{
//! Do nothing: specialization for the case active stress policy is None.
static void Perform(ActiveStressPolicyNS::None& ,
static void Perform(InternalVariablePolicyNS::None& ,
LocalVector& );
......
......@@ -70,18 +70,18 @@ namespace MoReFEM
}
template <unsigned int DimensionT, class ActiveStressPolicyT>
void ComputeWDerivatesActiveStress<DimensionT, ActiveStressPolicyT>
template <unsigned int DimensionT, class InternalVariablePolicyT>
void ComputeWDerivatesInternalVariable<DimensionT, InternalVariablePolicyT>
::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)
{
active_stress.template ComputeWDerivates<DimensionT>(quad_pt_unknown_list_data,
internal_variable.template ComputeWDerivates<DimensionT>(quad_pt_unknown_list_data,
geom_elt,
ref_felt,
cauchy_green_tensor_value,
......@@ -92,13 +92,13 @@ namespace MoReFEM
template <unsigned int DimensionT>
void ComputeWDerivatesActiveStress<DimensionT, SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::None>
void ComputeWDerivatesInternalVariable<DimensionT, SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::None>
::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,
SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::None& active_stress,
SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::None& internal_variable,
LocalVector& dW,
LocalMatrix& d2W)
{
......@@ -107,37 +107,37 @@ namespace MoReFEM
static_cast<void>(ref_felt);
static_cast<void>(cauchy_green_tensor_value);
static_cast<void>(transposed_De);
static_cast<void>(active_stress);
static_cast<void>(internal_variable);
static_cast<void>(dW);
static_cast<void>(d2W);
}
template <class ActiveStressPolicyT>
void CorrectRHSWithActiveSchurComplement<ActiveStressPolicyT>
::Perform(ActiveStressPolicyT& active_stress,
template <class InternalVariablePolicyT>
void CorrectRHSWithActiveSchurComplement<InternalVariablePolicyT>
::Perform(InternalVariablePolicyT& internal_variable,
LocalVector& rhs)
{
active_stress.CorrectRHSWithActiveSchurComplement(rhs);
internal_variable.CorrectRHSWithActiveSchurComplement(rhs);
}
template <unsigned int FiberIndexT>
inline void CorrectRHSWithActiveSchurComplement<SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::AnalyticalPrestress<FiberIndexT>>
::Perform(SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::AnalyticalPrestress<FiberIndexT>& active_stress,
inline void CorrectRHSWithActiveSchurComplement<SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::AnalyticalPrestress<FiberIndexT>>
::Perform(SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::AnalyticalPrestress<FiberIndexT>& internal_variable,
LocalVector& rhs)
{
static_cast<void>(rhs);
static_cast<void>(active_stress);
static_cast<void>(internal_variable);
}
inline void CorrectRHSWithActiveSchurComplement<SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::None>
::Perform(SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::None& active_stress,
inline void CorrectRHSWithActiveSchurComplement<SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::None>
::Perform(SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::None& internal_variable,
LocalVector& rhs)
{
static_cast<void>(rhs);
static_cast<void>(active_stress);
static_cast<void>(internal_variable);
}
......
......@@ -33,7 +33,7 @@
# include "Parameters/ParameterAtQuadraturePoint.hpp"
# include "Operators/LocalVariationalOperator/ElementaryData.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/ActiveStressPolicy/InputAnalyticalPrestress.hpp"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/InternalVariablePolicy/InputAnalyticalPrestress.hpp"
namespace MoReFEM
......@@ -54,7 +54,7 @@ namespace MoReFEM
{
namespace ActiveStressPolicyNS
namespace InternalVariablePolicyNS
{
......@@ -62,7 +62,7 @@ namespace MoReFEM
class AnalyticalPrestress;
} // namespace ActiveStressPolicyNS
} // namespace InternalVariablePolicyNS
} // namespace SecondPiolaKirchhoffStressTensorNS
......@@ -89,7 +89,7 @@ namespace MoReFEM
{
namespace ActiveStressPolicyNS
namespace InternalVariablePolicyNS
{
......@@ -123,14 +123,14 @@ namespace MoReFEM
using vector_parent = Crtp::LocalVectorStorage<AnalyticalPrestress<FiberIndexT>, 1ul>;
//! Friendship to the GlobalVariationalOperator.
friend ::MoReFEM::GlobalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::AnalyticalPrestress<FiberIndexT>;
friend ::MoReFEM::GlobalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::AnalyticalPrestress<FiberIndexT>;
//! Alias to a scalar parameter at quadrature point.
using ScalarParameterAtQuadPt = ParameterAtQuadraturePoint<ParameterNS::Type::scalar>;
//! Alias to the type of the input of the policy.
using input_active_stress_policy_type =
LocalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::ActiveStressPolicyNS::InputAnalyticalPrestress;
using input_internal_variable_policy_type =
LocalVariationalOperatorNS::SecondPiolaKirchhoffStressTensorNS::InternalVariablePolicyNS::InputAnalyticalPrestress;
//! Friendship to the class that calls SetSigmaC().
template
......@@ -154,13 +154,13 @@ namespace MoReFEM
* \param[in] Nnode_unknown Number of nodes.
* \param[in] Nquad_point Nunmber of quadrature point.
* \param[in] time_manager Object that keeps track of the time within the Model.
* \param[in] input_active_stress_policy \a InputAnalyticalPrestress object.
* \param[in] input_internal_variable_policy \a InputAnalyticalPrestress object.
*/
explicit AnalyticalPrestress(const unsigned int mesh_dimension,
const unsigned int Nnode_unknown,
const unsigned int Nquad_point,
const TimeManager& time_manager,
input_active_stress_policy_type* input_active_stress_policy);
input_internal_variable_policy_type* input_internal_variable_policy);
//! Destructor.
~AnalyticalPrestress() = default;
......@@ -182,7 +182,7 @@ namespace MoReFEM
public:
/*!
* \class doxygen_hide_second_piola_compute_W_derivates_active_stress
* \class doxygen_hide_second_piola_compute_W_derivates_internal_variable
*
* \brief Compute the active stress and its derivatives.
*
......@@ -195,7 +195,7 @@ namespace MoReFEM
* \param[in] transposed_De Transposed De matrix.
*/
//! \copydoc doxygen_hide_second_piola_compute_W_derivates_active_stress
//! \copydoc doxygen_hide_second_piola_compute_W_derivates_internal_variable
template<unsigned int DimensionT>
void ComputeWDerivates(const Advanced::LocalVariationalOperatorNS::InfosAtQuadPointNS::ForUnknownList& quad_pt_unknown_list_data,
const GeometricElt& geom_elt,
......@@ -244,7 +244,7 @@ namespace MoReFEM
private:
//! Contant accessor to the input of the policy.
const input_active_stress_policy_type& GetInputActiveStressPolicy() const noexcept;
const input_internal_variable_policy_type& GetInputInternalPolicy() const noexcept;
private:
......@@ -278,7 +278,7 @@ namespace MoReFEM
private:
//! Input of the policy.
input_active_stress_policy_type& input_active_stress_policy_;
input_internal_variable_policy_type& input_internal_variable_policy_;
private:
......@@ -302,7 +302,7 @@ namespace MoReFEM
};
} // namespace ActiveStressPolicyNS
} // namespace InternalVariablePolicyNS
} // namespace SecondPiolaKirchhoffStressTensorNS
......@@ -320,7 +320,7 @@ namespace MoReFEM
/// @} // addtogroup OperatorInstancesGroup
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/ActiveStressPolicy/AnalyticalPrestress.hxx"
# include "OperatorInstances/VariationalOperator/NonlinearForm/Local/SecondPiolaKirchhoffStressTensor/InternalVariablePolicy/AnalyticalPrestress.hxx"
#endif // MOREFEM_x_OPERATOR_INSTANCES_x_VARIATIONAL_OPERATOR_x_NONLINEAR_FORM_x_LOCAL_x_SECOND_PIOLA_KIRCHHOFF_STRESS_TENSOR_x_ACTIVE_STRESS_POLICY_x_ANALYTICAL_PRESTRESS_HPP_
......@@ -32,7 +32,7 @@ namespace MoReFEM
{
namespace ActiveStressPolicyNS
namespace InternalVariablePolicyNS
{
......@@ -41,11 +41,11 @@ namespace MoReFEM
const unsigned int Nnode_unknown,
const unsigned int Nquad_point,
const TimeManager& time_manager,
input_active_stress_policy_type* input_active_stress_policy)
input_internal_variable_policy_type* input_internal_variable_policy)
: vector_parent(),
fibers_(::MoReFEM::Internal::FiberNS::FiberListManager<ParameterNS::Type::vector>::GetInstance(__FILE__, __LINE__).GetFiberList(FiberIndexT)),
time_manager_(time_manager),
input_active_stress_policy_(*input_active_stress_policy)
input_internal_variable_policy_(*input_internal_variable_policy)
{
static_cast<void>(Nquad_point);
......@@ -134,7 +134,7 @@ namespace MoReFEM
double u0_at_quad = 0.;
double u1_at_quad = 0.;
const double sigma_0 = GetInputActiveStressPolicy().GetContractility().GetValue(quad_pt, geom_elt);
const double sigma_0 = GetInputInternalPolicy().GetContractility().GetValue(quad_pt, geom_elt);
const int Nnode = static_cast<int>(geom_elt.Nvertex());
......@@ -242,14 +242,14 @@ namespace MoReFEM
template <unsigned int FiberIndexT>
inline const typename AnalyticalPrestress<FiberIndexT>::input_active_stress_policy_type&
AnalyticalPrestress<FiberIndexT>::GetInputActiveStressPolicy() const noexcept
inline const typename AnalyticalPrestress<FiberIndexT>::input_internal_variable_policy_type&
AnalyticalPrestress<FiberIndexT>::GetInputInternalPolicy() const noexcept
{
return input_active_stress_policy_;
return input_internal_variable_policy_;
}
} // namespace ActiveStressPolicyNS
} // namespace InternalVariablePolicyNS
} // namespace SecondPiolaKirchhoffStressTensorNS
......
......@@ -42,7 +42,7 @@ namespace MoReFEM
{
namespace ActiveStressPolicyNS
namespace InternalVariablePolicyNS
{
......@@ -77,7 +77,7 @@ namespace MoReFEM
const ScalarParameter<>& GetContractility() const noexcept;
//! Constant accessor on the initial value of the active stress.
double GetInitialValueActiveStress() const noexcept;
double GetInitialValueInternalVariable() const noexcept;
private:
......@@ -85,12 +85,12 @@ namespace MoReFEM
ScalarParameter<>::unique_ptr contractility_ = nullptr;
//! Initial value of the active stress.