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-2019 Manav Bhatia
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 
72  virtual int extra_quadrature_order(const MAST::GeomElem& elem) const {
73  if (this->bending_model(elem) == MAST::BERNOULLI)
74  return 2;
75  else
76  return 0;
77  }
78 
79 
80 // /*!
81 // * returns value of the property \p val. The string values for
82 // * \p val are IYY, IZZ, IYZ
83 // */
84 // virtual Real value(const std::string& val) const = 0;
85 
91  return _local_y;
92  }
93 
94 
99  const RealVectorX& y_vector() const {
100  return _local_y;
101  }
102 
103 
107  virtual const MAST::FieldFunction<Real>& A() const = 0;
108 
109 
113  virtual MAST::FieldFunction<Real>& A() = 0;
114 
119  virtual const MAST::FieldFunction<Real>& J() const = 0;
120 
125  virtual MAST::FieldFunction<Real>& J() = 0;
126 
130  virtual const MAST::FieldFunction<Real>& Ip() const = 0;
131 
135  virtual MAST::FieldFunction<Real>& Ip() = 0;
136 
141  virtual const MAST::FieldFunction<Real>& Ay() const = 0;
142 
147  virtual MAST::FieldFunction<Real>& Ay() = 0;
148 
153  virtual const MAST::FieldFunction<Real>& Az() const = 0;
154 
159  virtual MAST::FieldFunction<Real>& Az() = 0;
160 
165  virtual const MAST::FieldFunction<RealMatrixX>& I() const = 0;
166 
167 
172  virtual MAST::FieldFunction<RealMatrixX>& I() = 0;
173 
174 
175  protected:
176 
182 
187 
188  };
189 
190 
191 }
192 
193 
194 #endif // __mast__element_property_card_1D__
virtual const MAST::FieldFunction< Real > & Ay() const =0
virtual const MAST::FieldFunction< Real > & Ip() const =0
const RealVectorX & y_vector() const
constant reference to vector in the x-y plane of the element.
MAST::BendingOperatorType _bending_model
material property card.
virtual MAST::BendingOperatorType bending_model(const MAST::GeomElem &elem) const
returns the bending model to be used for the 2D element.
RealVectorX & y_vector()
returns value of the property val.
RealVectorX _local_y
vector in the x-y plane.
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...
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
virtual unsigned int dim() const
dimension of the element for which this property is defined
BendingOperatorType
void set_bending_model(MAST::BendingOperatorType b)
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