MAST
level_set_void_solution.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_void_solution__
21 #define __mast__level_set_void_solution__
22 
23 
24 // MAST includes
25 #include "base/assembly_base.h"
26 
27 
28 namespace MAST {
29 
30  // Forward declerations
31  class LevelSetInterfaceDofHandler;
32  class LevelSetIntersection;
33 
44 
45  public:
46 
48 
49  virtual ~LevelSetVoidSolution();
50 
51  virtual void init(MAST::AssemblyBase& assembly) {
52  libmesh_error(); // call the other method instead
53  }
54 
55  virtual void init(MAST::AssemblyBase& assembly,
56  MAST::LevelSetIntersection& intersection,
58 
59  virtual void clear();
60 
63  return *_assembly;
64  }
65 
66  void update_void_solution(libMesh::NumericVector<Real>& X,
67  libMesh::NumericVector<Real>& dX);
68 
69 
70  protected:
71 
72 
74 
76 
78  };
79 }
80 
81 #endif // __mast__level_set_void_solution__
82 
virtual void init(MAST::AssemblyBase &assembly)
MAST::LevelSetIntersection * _intersection
void update_void_solution(libMesh::NumericVector< Real > &X, libMesh::NumericVector< Real > &dX)
This will compute the solution at the interface under the assumption of zero surface normal flux...
MAST::LevelSetInterfaceDofHandler * _dof_handler
MAST::AssemblyBase & get_assembly()