1 /*!
2  * \file   mfront/src/AbaqusException.cxx
3  * \brief
4  *
5  * \author Thomas Helfer
6  * \date   09 nov 2007
7  * \copyright Copyright (C) 2006-2018 CEA/DEN, EDF R&D. All rights
8  * reserved.
9  * This project is publicly released under either the GNU GPL Licence
10  * or the CECILL-A licence. A copy of thoses licences are delivered
11  * with the sources of TFEL. CEA or EDF may also distribute this
12  * project under specific licensing conditions.
13  */
14 
15 #include"MFront/Abaqus/AbaqusException.hxx"
16 
17 // fixing a bug on current glibc++ cygwin versions (19/08/2015)
18 #if defined __CYGWIN__ &&  (!defined _GLIBCXX_USE_C99)
19 #include<sstream>
20 namespace std{
21   template<typename T>
to_string(const T & v)22   std::string to_string(const T& v){
23     std::ostringstream s;
24     s << v;
25     return s.str();
26   }
27 }
28 #endif /* defined __CYGWIN__ &&  (!defined _GLIBCXX_USE_C99) */
29 
30 namespace abaqus
31 {
32 
AbaqusException(const std::string & s)33   AbaqusException::AbaqusException(const std::string& s)
34     : msg(s)
35   {} // end of AbaqusException::AbaqusException
36 
37   AbaqusException::AbaqusException(AbaqusException&&) = default;
38 
39   AbaqusException::AbaqusException(const AbaqusException&) = default;
40 
41   const char*
what() const42   AbaqusException::what () const noexcept
43   {
44     return msg.c_str();
45   } // end of AbaqusException::what
46 
47   std::string
getMsg() const48   AbaqusException::getMsg() const noexcept
49   {
50     return msg;
51   } // end of AbaqusException::getMsg
52 
53   AbaqusException::~AbaqusException() noexcept = default;
54 
55   AbaqusInvalidModellingHypothesis::AbaqusInvalidModellingHypothesis(AbaqusInvalidModellingHypothesis&&) = default;
56 
57   AbaqusInvalidModellingHypothesis::AbaqusInvalidModellingHypothesis(const AbaqusInvalidModellingHypothesis&) = default;
58 
AbaqusInvalidModellingHypothesis(const char * b)59   AbaqusInvalidModellingHypothesis::AbaqusInvalidModellingHypothesis(const char* b)
60     : AbaqusException("current modelling hypothesis is not supported by behaviour '"+
61 		      std::string(b)+"'")
62   {}
63 
64   AbaqusInvalidModellingHypothesis::~AbaqusInvalidModellingHypothesis() noexcept = default;
65 
AbaqusInvalidNTENSValue(const unsigned short N)66   AbaqusInvalidNTENSValue::AbaqusInvalidNTENSValue(const unsigned short N)
67     : AbaqusException("Invalid tensor size declared '"+
68 		     std::to_string(static_cast<unsigned int>(N))+"'")
69   {} // end of AbaqusInvalidNTENSValue::AbaqusInvalidNTENSValue
70 
71   AbaqusInvalidNTENSValue::AbaqusInvalidNTENSValue(AbaqusInvalidNTENSValue&&) = default;
72 
73   AbaqusInvalidNTENSValue::AbaqusInvalidNTENSValue(const AbaqusInvalidNTENSValue&) = default;
74 
75   AbaqusInvalidNTENSValue::~AbaqusInvalidNTENSValue() noexcept = default;
76 
AbaqusInvalidDimension(const std::string & b,const unsigned short N)77   AbaqusInvalidDimension::AbaqusInvalidDimension(const std::string& b,
78 						 const unsigned short N)
79     : AbaqusException("''"+b+"' can't be used in "+
80 		     std::to_string(static_cast<unsigned int>(N))+"D")
81   {} // end of AbaqusInvalidDimension::AbaqusInvalidDimension
82 
83   AbaqusInvalidDimension::AbaqusInvalidDimension(const AbaqusInvalidDimension&) = default;
84 
85   AbaqusInvalidDimension::AbaqusInvalidDimension(AbaqusInvalidDimension&&) = default;
86 
87 
88   AbaqusInvalidDimension::~AbaqusInvalidDimension() noexcept = default;
89 
90 } // end of namespace abaqus
91 
92