MAST
level_set_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__level_set_eigenproblem_assembly_h__
21 #define __mast__level_set_eigenproblem_assembly_h__
22 
23 // MAST includes
25 
26 
27 namespace MAST {
28 
29  // Forward declerations
30  template <typename ValType> class FieldFunction;
31  class LevelSetIntersection;
32 
33 
36  public:
37 
38 
43 
44 
50 
51 
55  virtual void
57 
61  virtual void
63 
67  virtual void
69 
70 
74  virtual void
76 
77 
82 
86  virtual void
87  eigenproblem_assemble(libMesh::SparseMatrix<Real>* A,
88  libMesh::SparseMatrix<Real>* B);
89 
99  virtual bool
101  libMesh::SparseMatrix<Real>* sensitivity_A,
102  libMesh::SparseMatrix<Real>* sensitivity_B);
103 
104  protected:
105 
107 
109 
111  };
112 }
113 
114 
115 #endif //__mast__level_set_eigenproblem_assembly_h__
116 
117 
MAST::FieldFunction< RealVectorX > * _velocity
virtual void set_level_set_function(MAST::FieldFunction< Real > &level_set)
attaches level set function to this
virtual void clear_level_set_function()
clears association with level set function
Assembles the system of equations for an eigenproblem of type .
virtual ~LevelSetEigenproblemAssembly()
destructor resets the association of this assembly object with the system
virtual void set_level_set_velocity_function(MAST::FieldFunction< RealVectorX > &velocity)
the velocity function used to calculate topology sensitivity
virtual void eigenproblem_assemble(libMesh::SparseMatrix< Real > *A, libMesh::SparseMatrix< Real > *B)
assembles the matrices for eigenproblem depending on the analysis type
virtual bool eigenproblem_sensitivity_assemble(const MAST::FunctionBase &f, libMesh::SparseMatrix< Real > *sensitivity_A, libMesh::SparseMatrix< Real > *sensitivity_B)
Assembly function.
LevelSetEigenproblemAssembly()
constructor associates this assembly object with the system
virtual void clear_level_set_velocity_function()
clears the velocity function