@@ -45,7 +45,7 @@ class LawDispatcher {
4545public:
4646 Tensor4 computeElastTensor (const Tensor2& sig);
4747 Tensor4 computeTangentTensor (const Tensor2& sig);
48- bool initState (const Tensor2& sig, RealConstArrayView& history_vars );
48+ bool initState (const Tensor2& sig);
4949 RealUniqueArray initHistoryVars (RealConstArrayView& history_vars);
5050 void computeStress (bool isRef);
5151 RealUniqueArray initConsts (RealConstArrayView& law_params);
@@ -69,6 +69,7 @@ class LawDispatcher {
6969 void setStrainIncrement (const Tensor2&);
7070
7171 [[nodiscard]] Integer getNbLawParam () const { return m_nb_law_param; }
72+ [[nodiscard]] Integer getNbLawHistoryParam () const { return m_nb_law_history_param; }
7273
7374 void setLambda (Real lambda) { m_Lambda = lambda; }
7475 void setMu (Real mu) { m_Mu = mu; }
@@ -77,9 +78,12 @@ class LawDispatcher {
7778 void setLawParams (const RealUniqueArray& lawparams) {
7879 m_law_params = lawparams.clone ();
7980 }
81+ void setLawHistoryParams (const RealUniqueArray& lawhistparams) {
82+ m_history_vars = lawhistparams.clone ();
83+ }
8084
8185private:
82- std::function<Tensor4(RealConstArrayView& law_params, RealArrayView& history_vars, Tensor2& sig, Tensor2& eps, Tensor2& epsp, Tensor2& dsig,
86+ std::function<Tensor4(RealConstArrayView& law_params, RealArrayView& history_vars, Tensor2& sig, Tensor2& eps, Tensor2& epsp, Tensor2& dsig,
8387 const Tensor2& deps, bool isRef)> m_compute_stress[NB_LAW_TYPE];
8488 std::function<Tensor4(RealConstArrayView& law_params, const Tensor2& sig)> m_compute_elast_tensor[NB_LAW_TYPE];
8589 std::function<Tensor4(RealConstArrayView& law_params, RealArrayView& history_vars,
@@ -106,6 +110,7 @@ class LawDispatcher {
106110 String m_name{};
107111 bool m_default{true };
108112 Integer m_nb_law_param{2 };
113+ Integer m_nb_law_history_param{0 };
109114};
110115
111116#endif // PASSMO_LAWDISPATCHER_H
0 commit comments