1 /*!
2  * \file   mfront/src/DefaultFiniteStrainDSL.cxx
3  * \brief
4  * \author Thomas Helfer
5  * \date   08 nov 2006
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 #include<string>
15 #include<fstream>
16 #include<stdexcept>
17 
18 #include"MFront/AbstractBehaviourInterface.hxx"
19 #include"MFront/BehaviourInterfaceFactory.hxx"
20 #include"MFront/DefaultFiniteStrainDSL.hxx"
21 
22 namespace mfront{
23 
DefaultFiniteStrainDSL()24   DefaultFiniteStrainDSL::DefaultFiniteStrainDSL() {
25     this->mb.setDSLName("DefaultFiniteStrain");
26     this->mb.declareAsAFiniteStrainStandardBehaviour(false);
27   }
28 
getDescription()29   std::string DefaultFiniteStrainDSL::getDescription() {
30     return "this parser is the most generic one as it does not make any restriction "
31            "on the behaviour or the integration method that may be used";
32   } // end of DefaultFiniteStrainDSL::getDescription
33 
getName()34   std::string DefaultFiniteStrainDSL::getName() {
35     return "DefaultFiniteStrainDSL";
36   }
37 
writeBehaviourParserSpecificIncludes(std::ostream & os) const38   void DefaultFiniteStrainDSL::writeBehaviourParserSpecificIncludes(
39       std::ostream& os) const {
40     DefaultDSLBase::writeBehaviourParserSpecificIncludes(os);
41     os << "#include\"TFEL/Math/tensor.hxx\"\n";
42   } // end of DefaultFiniteStrainDSL::writeBehaviourParserSpecificIncludes
43 
getBehaviourDSLDescription() const44   BehaviourDSLDescription DefaultFiniteStrainDSL::getBehaviourDSLDescription() const {
45     auto d = mfront::getDefaultFiniteStrainBehaviourDSLDescription();
46     d.integrationScheme = IntegrationScheme::USERDEFINEDSCHEME;
47     d.typicalCodeBlocks = {BehaviourData::ComputePredictionOperator,
48                            BehaviourData::Integrator,
49                            BehaviourData::ComputeTangentOperator};
50     d.minimalMFrontFileBody = "@Integrator{}\n\n";
51     return d;
52   }  // end of DefaultFiniteStrainDSL::getBehaviourDSLDescription
53 
54   DefaultFiniteStrainDSL::~DefaultFiniteStrainDSL() = default;
55 
56 } // end of namespace mfront
57