MAST
transient_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 
21 #ifndef __mast_transient_assembly_elem_operations_h__
22 #define __mast_transient_assembly_elem_operations_h__
23 
24 // MAST includes
26 #include "base/mast_data_types.h"
27 
28 namespace MAST {
29 
32 
33  public:
35 
37 
50  virtual void elem_calculations(bool if_jac,
51  RealVectorX& f_m,
52  RealVectorX& f_x,
53  RealMatrixX& f_m_jac_xdot,
54  RealMatrixX& f_m_jac,
55  RealMatrixX& f_x_jac) = 0;
56 
57 
58 
73  virtual void elem_calculations(bool if_jac,
74  RealVectorX& f_m,
75  RealVectorX& f_x,
76  RealMatrixX& f_m_jac_xddot,
77  RealMatrixX& f_m_jac_xdot,
78  RealMatrixX& f_m_jac,
79  RealMatrixX& f_x_jac_xdot,
80  RealMatrixX& f_x_jac) = 0;
81 
90  virtual void
92 
93 
100  RealVectorX& f_m,
101  RealVectorX& f_x) = 0;
102 
103 
104  protected:
105 
106  };
107 }
108 
109 
110 #endif // __mast_transient_assembly_elem_operations_h__
111 
virtual void linearized_jacobian_solution_product(RealVectorX &f)=0
Calculates the product of Jacobian-solution, and Jacobian-velocity over the element for a system of t...
virtual void elem_sensitivity_calculations(const MAST::FunctionBase &f, RealVectorX &f_m, RealVectorX &f_x)=0
performs the element sensitivity calculations over elem, and returns the component of element residua...
virtual void elem_calculations(bool if_jac, RealVectorX &f_m, RealVectorX &f_x, RealMatrixX &f_m_jac_xdot, RealMatrixX &f_m_jac, RealMatrixX &f_x_jac)=0
performs the element calculations over elem, for a system of the form .
Matrix< Real, Dynamic, Dynamic > RealMatrixX
Matrix< Real, Dynamic, 1 > RealVectorX