MAST
conservative_fluid_transient_assembly.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__conservative_fluid_transient_assembly_h__
21 #define __mast__conservative_fluid_transient_assembly_h__
22 
23 // MAST includes
25 
26 
27 
28 namespace MAST {
29 
30 
33  public:
34 
39 
40 
46 
47  //**************************************************************
48  //these methods are provided for use by the solvers
49  //**************************************************************
50 
51 
58  virtual void elem_calculations(bool if_jac,
59  RealVectorX& f_m,
60  RealVectorX& f_x,
61  RealMatrixX& f_m_jac_x_dot,
62  RealMatrixX& f_m_jac,
63  RealMatrixX& f_x_jac);
64 
69  virtual void elem_calculations(bool if_jac,
70  RealVectorX& f_m,
71  RealVectorX& f_x,
72  RealMatrixX& f_m_jac_xddot,
73  RealMatrixX& f_m_jac_xdot,
74  RealMatrixX& f_m_jac,
75  RealMatrixX& f_x_jac_xdot,
76  RealMatrixX& f_x_jac) {
77 
78  libmesh_error(); // should not get here.
79  }
80 
81 
90  virtual void
92 
93 
94 
99  virtual void
101  RealVectorX& f_m,
102  RealVectorX& f_x);
103 
104 
109  virtual void
111 
115  virtual void
116  set_elem_data(unsigned int dim,
117  const libMesh::Elem& ref_elem,
118  MAST::GeomElem& elem) const { }
119 
125  virtual void
126  init(const MAST::GeomElem& elem);
127 
128  protected:
129 
130 
131  };
132 
133 
134 }
135 
136 #endif // __mast__conservative_fluid_transient_assembly_h__
137 
virtual void linearized_jacobian_solution_product(RealVectorX &f)
Calculates the product of Jacobian-solution, and Jacobian-velocity over the element for a system of t...
virtual void elem_second_derivative_dot_solution_assembly(RealMatrixX &mat)
calculates over elem, and returns the matrix in vec .
virtual void elem_calculations(bool if_jac, RealVectorX &f_m, RealVectorX &f_x, RealMatrixX &f_m_jac_x_dot, RealMatrixX &f_m_jac, RealMatrixX &f_x_jac)
performs the element calculations over elem, and returns the element vector and matrix quantities in ...
virtual void elem_calculations(bool if_jac, RealVectorX &f_m, RealVectorX &f_x, RealMatrixX &f_m_jac_xddot, RealMatrixX &f_m_jac_xdot, RealMatrixX &f_m_jac, RealMatrixX &f_x_jac_xdot, RealMatrixX &f_x_jac)
This call for second order ode should not be used for this transient assembly.
virtual ~ConservativeFluidTransientAssemblyElemOperations()
destructor resets the association of this assembly object with the system
Matrix< Real, Dynamic, Dynamic > RealMatrixX
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 void elem_sensitivity_calculations(const MAST::FunctionBase &f, RealVectorX &f_m, RealVectorX &f_x)
performs the element sensitivity calculations over elem, and returns the element residual sensitivity...
virtual void set_elem_data(unsigned int dim, const libMesh::Elem &ref_elem, MAST::GeomElem &elem) const
virtual function, but nothing to be done for fluids.
ConservativeFluidTransientAssemblyElemOperations()
constructor associates this assembly object with the system
virtual void init(const MAST::GeomElem &elem)
initializes the object for the geometric element elem.