1 /*! 2 * \file ViscoplasticFlowBase.hxx 3 * \brief 4 * \author Thomas Helfer 5 * \date 28/03/2018 6 * \copyright Copyright (C) 2006-2018 CEA/DEN, EDF R&D. All rights 7 * reserved. 8 * This project is publicly released under either the GNU GPL Licence 9 * or the CECILL-A licence. A copy of thoses licences are delivered 10 * with the sources of TFEL. CEA or EDF may also distribute this 11 * project under specific licensing conditions. 12 */ 13 14 #ifndef LIB_MFRONT_BEHAVIOURBRICK_VISCOPLASTICFLOWBASE_HXX 15 #define LIB_MFRONT_BEHAVIOURBRICK_VISCOPLASTICFLOWBASE_HXX 16 17 #include "MFront/BehaviourBrick/InelasticFlowBase.hxx" 18 19 namespace mfront { 20 21 namespace bbrick { 22 23 /*! 24 * \brief describe an general viscoplastic flow. 25 * \f[ 26 * \underline{\dot{\varepsilon}}^{\mathrm{vp}}= 27 * f\left(\phi\left(\underline{\sigma}-\displaystyle\sum_{i}\underline{X}_{i}\right)-R\left(p\right)\right)^{n} 28 * \frac{\partial \phi_{f}}{\partial \underline{\sigma}} 29 * \f] 30 * where: 31 * - \f$f\f$ is a function describing the flow intensity 32 * - \f$<.>\f$ are the Macaulay brackets 33 * - \f$\phi\f$ is the stress criterion 34 * - \f$\phi_{f}\f$ is the flow criterion 35 * - \f$\underline{X}_{i}\f$ is the \f$i^{\mathrm{th}}\f$ back stress 36 * - \f$R\left(p\right)\f$ is the isotropic hardening rule 37 */ 38 struct ViscoplasticFlowBase : InelasticFlowBase { 39 void initialize(BehaviourDescription&, 40 AbstractBehaviourDSL&, 41 const std::string&, 42 const DataMap&) override; 43 //! destructor 44 ~ViscoplasticFlowBase() override; 45 46 protected: 47 std::string buildFlowImplicitEquations(const BehaviourDescription&, 48 const StressPotential&, 49 const std::string&, 50 const bool) const override; 51 /*! 52 * \brief compute the flow rate "vp"+id 53 * \param[in] id: flow id 54 */ 55 virtual std::string computeFlowRate(const std::string&) const = 0; 56 /*! 57 * \brief compute the flow rate "vp"+id and its derivative "dvp_dseqe" 58 * with respect to the effective equivalent stress defined by: 59 * \f[ 60 * \phi\left(\underline{\sigma}-\displaystyle\sum_{i}\underline{X}_{i}\right)-R\left(p\right) 61 * \f] 62 * \param[in] id: flow id 63 */ 64 virtual std::string computeFlowRateAndDerivative( 65 const std::string&) const = 0; 66 }; // end of struct ViscoplasticFlowBase 67 68 } // end of namespace bbrick 69 70 } // end of namespace mfront 71 72 #endif /* LIB_MFRONT_BEHAVIOURBRICK_VISCOPLASTICFLOWBASE_HXX */ 73