MAST
structural_modal_eigenproblem_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__structural_modal_eigenproblem_assembly_elem_operations_h__
21 #define __mast__structural_modal_eigenproblem_assembly_elem_operations_h__
22 
23 // MAST includes
25 
26 
27 namespace MAST {
28 
29  // Forward declerations
30  class StructuralAssembly;
31 
34  public:
35 
40 
46 
47 
52 
53 
58 
62  virtual void
63  set_elem_solution(const RealVectorX& sol);
64 
68  virtual void
70 
76  virtual void
78  RealMatrixX& mat_B);
79 
85  virtual void
87  bool base_sol,
88  RealMatrixX& mat_A,
89  RealMatrixX& mat_B);
90 
94  virtual void
96  bool base_sol,
98  RealMatrixX& mat_A,
99  RealMatrixX& mat_B);
100 
104  virtual void
105  set_elem_data(unsigned int dim,
106  const libMesh::Elem& ref_elem,
107  MAST::GeomElem& elem) const;
108 
114  virtual void
115  init(const MAST::GeomElem& elem);
116 
117  protected:
118 
119 
121  };
122 
123 }
124 
125 #endif // __mast__structural_modal_eigenproblem_assembly_elem_operations_h__
virtual void elem_sensitivity_calculations(const MAST::FunctionBase &f, bool base_sol, RealMatrixX &mat_A, RealMatrixX &mat_B)
performs the element sensitivity calculations over elem, and returns the element matrices for the eig...
This class provides some routines that are common to structural assembly routines.
void clear_incompatible_solution_object()
clear the incompatible solution object
virtual void elem_calculations(RealMatrixX &mat_A, RealMatrixX &mat_B)
performs the element calculations over elem, and returns the element matrices for the eigenproblem ...
Matrix< Real, Dynamic, Dynamic > RealMatrixX
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.
Matrix< Real, Dynamic, 1 > RealVectorX
StructuralModalEigenproblemAssemblyElemOperations()
constructor associates the eigen system with this assembly object
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_solution_sensitivity(const RealVectorX &sol)
sets the element solution sensitivity before calculations
virtual void elem_topology_sensitivity_calculations(const MAST::FunctionBase &f, bool base_sol, const MAST::FieldFunction< RealVectorX > &vel, RealMatrixX &mat_A, RealMatrixX &mat_B)
performs the element topology sensitivity calculations over elem.
virtual void init(const MAST::GeomElem &elem)
initializes the object for the geometric element elem.
virtual ~StructuralModalEigenproblemAssemblyElemOperations()
destructor resets the association with the eigen system from this assembly object ...
virtual void set_elem_solution(const RealVectorX &sol)
sets the element solution(s) before calculations
void attach_incompatible_solution_object(MAST::StructuralAssembly &str_assembly)
attached the incompatible solution object