MAST
Multidisciplinary-design Adaptation and Sensitivity Toolkit (MAST)
element_property_card_1D.h
Go to the documentation of this file.
1 /*
2  * MAST: Multidisciplinary-design Adaptation and Sensitivity Toolkit
3  * Copyright (C) 2013-2020 Manav Bhatia and MAST authors
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef __mast__element_property_card_1D__
21 #define __mast__element_property_card_1D__
22 
23 
24 // MAST includes
26 
27 
28 
29 namespace MAST
30 {
32 
33  public:
37  { }
38 
42  virtual ~ElementPropertyCard1D() { }
43 
44 
48  virtual unsigned int dim() const {
49  return 1;
50  }
51 
52 
57  _bending_model = b;
58  }
59 
60 
64  virtual MAST::BendingOperatorType bending_model(const MAST::GeomElem& elem) const;
65 
66  //virtual MAST::BendingOperatorType bending_model(const libMesh::Elem& elem) const;
67 
68 
74  virtual int extra_quadrature_order(const MAST::GeomElem& elem) const {
75  if (this->bending_model(elem) == MAST::BERNOULLI)
76  return 2;
77  else
78  return 0;
79  }
80 
81 
82 // /*!
83 // * returns value of the property \p val. The string values for
84 // * \p val are IYY, IZZ, IYZ
85 // */
86 // virtual Real value(const std::string& val) const = 0;
87 
93  return _local_y;
94  }
95 
96 
101  const RealVectorX& y_vector() const {
102  return _local_y;
103  }
104 
105 
109  virtual const MAST::FieldFunction<Real>& A() const = 0;
110 
111 
115  virtual MAST::FieldFunction<Real>& A() = 0;
116 
121  virtual const MAST::FieldFunction<Real>& J() const = 0;
122 
127  virtual MAST::FieldFunction<Real>& J() = 0;
128 
132  virtual const MAST::FieldFunction<Real>& Ip() const = 0;
133 
137  virtual MAST::FieldFunction<Real>& Ip() = 0;
138 
143  virtual const MAST::FieldFunction<Real>& Ay() const = 0;
144 
149  virtual MAST::FieldFunction<Real>& Ay() = 0;
150 
155  virtual const MAST::FieldFunction<Real>& Az() const = 0;
156 
161  virtual MAST::FieldFunction<Real>& Az() = 0;
162 
167  virtual const MAST::FieldFunction<RealMatrixX>& I() const = 0;
168 
169 
174  virtual MAST::FieldFunction<RealMatrixX>& I() = 0;
175 
176 
177  protected:
178 
184 
189 
190  };
191 
192 
193 }
194 
195 
196 #endif // __mast__element_property_card_1D__
virtual int extra_quadrature_order(const MAST::GeomElem &elem) const
returns the extra quadrature order (on top of the system) that this element should use...
virtual const MAST::FieldFunction< Real > & Ay() const =0
virtual const MAST::FieldFunction< Real > & Ip() const =0
MAST::BendingOperatorType _bending_model
material property card.
RealVectorX & y_vector()
returns value of the property val.
const RealVectorX & y_vector() const
constant reference to vector in the x-y plane of the element.
RealVectorX _local_y
vector in the x-y plane.
virtual unsigned int dim() const
dimension of the element for which this property is defined
Matrix< Real, Dynamic, 1 > RealVectorX
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
Definition: geom_elem.h:59
virtual const MAST::FieldFunction< Real > & Az() const =0
virtual const MAST::FieldFunction< Real > & A() const =0
virtual ~ElementPropertyCard1D()
virtual destructor
BendingOperatorType
void set_bending_model(MAST::BendingOperatorType b)
returns the bending model to be used for the 2D element
virtual MAST::BendingOperatorType bending_model(const MAST::GeomElem &elem) const
returns the bending model to be used for the 2D element.
virtual const MAST::FieldFunction< RealMatrixX > & I() const =0
virtual const MAST::FieldFunction< Real > & J() const =0