1 /*! 2 * \file mfront/includes/MFront/StandardElastoViscoPlasticityBrick.hxx 3 * \brief 4 * \author Thomas Helfer 5 * \date 15/03/2018 6 */ 7 8 #ifndef LIB_MFRONT_STANDARDELASTOVISCOPLASTICITYBRICK_HXX 9 #define LIB_MFRONT_STANDARDELASTOVISCOPLASTICITYBRICK_HXX 10 11 #include <memory> 12 #include "MFront/BehaviourBrickBase.hxx" 13 14 namespace mfront { 15 16 namespace bbrick { 17 // forward declaration 18 struct StressPotential; 19 // forward declaration 20 struct InelasticFlow; 21 } // end of namespace bbrick 22 23 /*! 24 * \brief The `StandardElastoViscoPlasticityBrick` is meant to describe a 25 * behaviour based on: 26 * - a stress potential describing how the stress is computed. The most 27 * used one will probably be the `Hooke` stress potential. 28 * - a list of inelastic flows which describe how inelastic strains evolve. 29 */ 30 struct StandardElastoViscoPlasticityBrick : public BehaviourBrickBase { 31 /*! 32 * \brief constructor 33 * \param[in] dsl_ : calling domain specific language 34 * \param[in] bd_ : mechanical behaviour description 35 * \param[in] p : parameters 36 * \param[in] d : data 37 */ 38 StandardElastoViscoPlasticityBrick(AbstractBehaviourDSL&, 39 BehaviourDescription&, 40 const Parameters&, 41 const DataMap&); 42 //! \return the name of the brick 43 std::string getName() const override; 44 //! \return the list of supported modelling hypotheses. 45 std::vector<Hypothesis> getSupportedModellingHypotheses() const override; 46 //! complete the variable description 47 void completeVariableDeclaration() const override; 48 //! method called at the end of the input file processing 49 void endTreatment() const override; 50 //! destructor 51 ~StandardElastoViscoPlasticityBrick() override; 52 53 private: 54 //! stress potential 55 std::shared_ptr<bbrick::StressPotential> stress_potential; 56 //! inelastic flows 57 std::vector<std::shared_ptr<bbrick::InelasticFlow>> flows; 58 59 }; // end of StandardElastoViscoPlasticityBrick 60 61 } // end of namespace mfront 62 63 #endif /* LIB_MFRONT_STANDARDELASTOVISCOPLASTICITYBRICK_HXX */ 64