MAST
fluid_structure_assembly_elem_operations.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__fluid_structure_assembly_elem_operations_h__
21 #define __mast__fluid_structure_assembly_elem_operations_h__
22 
23 // MAST includes
26 
27 namespace MAST {
28 
31 
32  public:
33 
36 
37 
39  _qty_type = q;
40  }
41 
45  virtual void
46  set_elem_data(unsigned int dim,
47  const libMesh::Elem& ref_elem,
48  MAST::GeomElem& elem) const;
49 
55  virtual void
56  init(const MAST::GeomElem& elem);
57 
63  _base_sol = f;
64  }
65 
66  virtual void elem_calculations(bool if_jac,
67  RealVectorX& vec,
68  RealMatrixX& mat);
71  bool if_jac,
72  RealVectorX& vec,
73  RealMatrixX& mat);
75  protected:
76 
80  bool _base_sol;
81 
86  };
87 }
88 
89 
90 
91 #endif // __mast__fluid_structure_assembly_elem_operations_h__
MAST::StructuralQuantityType _qty_type
this defines the quantity to be assembled
virtual void set_elem_data(unsigned int dim, const libMesh::Elem &ref_elem, MAST::GeomElem &elem) const
sets the structural element y-vector if 1D element is used.
bool _base_sol
whether or not the base solution was included for linearization
Matrix< Complex, Dynamic, 1 > ComplexVectorX
virtual void init(const MAST::GeomElem &elem)
initializes the object for the geometric element elem.
Matrix< Real, Dynamic, Dynamic > RealMatrixX
Matrix< Real, Dynamic, 1 > RealVectorX
virtual void elem_calculations(bool if_jac, RealVectorX &vec, RealMatrixX &mat)
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
Definition: geom_elem.h:59
virtual void elem_sensitivity_calculations(const MAST::FunctionBase &f, bool if_jac, RealVectorX &vec, RealMatrixX &mat)
void use_base_sol_for_sensitivity(bool f)
if set to true, the sensitivity calculation will include the sensitivity of base solution.