MAST
heat_conduction_nonlinear_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 
21 #ifndef __mast__heat_conduction_nonlinear_assembly__
22 #define __mast__heat_conduction_nonlinear_assembly__
23 
24 // MAST includes
26 
27 
28 namespace MAST {
29 
30 
33 
34  public:
35 
40 
41 
47 
54  virtual void
55  elem_calculations(bool if_jac,
56  RealVectorX& vec,
57  RealMatrixX& mat);
58 
63  virtual void
65  RealVectorX& vec);
66 
71  virtual void
73  RealVectorX& vec) {
74  libmesh_assert(false); // to be implemented
75  }
76 
81  virtual void
84  RealVectorX& vec);
85 
90  virtual void
92 
93  virtual void
95 
96  libmesh_assert(false); // not implemented yet.
97  }
98 
102  virtual void
103  set_elem_data(unsigned int dim,
104  const libMesh::Elem& ref_elem,
105  MAST::GeomElem& elem) const;
106 
112  virtual void
113  init(const MAST::GeomElem& elem);
114 
115  protected:
116 
117  };
118 }
119 
120 
121 #endif // __mast__heat_conduction_nonlinear_assembly__
virtual void elem_second_derivative_dot_solution_assembly(RealMatrixX &mat)
calculates over elem, and returns the matrix in vec .
virtual void elem_sensitivity_calculations(const MAST::FunctionBase &f, RealVectorX &vec)
performs the element sensitivity calculations over elem, and returns the element residual sensitivity...
virtual void elem_topology_sensitivity_calculations(const MAST::FunctionBase &f, const MAST::FieldFunction< RealVectorX > &vel, RealVectorX &vec)
performs the element topology sensitivity calculations over elem, and returns the element residual se...
virtual void init(const MAST::GeomElem &elem)
initializes the object for the geometric element elem.
HeatConductionNonlinearAssemblyElemOperations()
constructor associates this assembly object with the system
virtual ~HeatConductionNonlinearAssemblyElemOperations()
destructor resets the association of this assembly object with the system
virtual void elem_calculations(bool if_jac, RealVectorX &vec, RealMatrixX &mat)
performs the element calculations over elem, and returns the element vector and matrix quantities in ...
virtual void elem_shape_sensitivity_calculations(const MAST::FunctionBase &f, RealVectorX &vec)
performs the element shape sensitivity calculations over elem, and returns the element residual sensi...
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 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.
virtual void elem_linearized_jacobian_solution_product(RealVectorX &vec)
performs the element calculations over elem, and returns the element vector quantity in vec...