MAST
sub_cell_fe.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_sub_cell_fe_h__
21 #define __mast_sub_cell_fe_h__
22 
23 // MAST includes
24 #include "mesh/fe_base.h"
25 
26 
27 namespace MAST {
28 
29  // Forward declerations
30  class LevelSetIntersection;
31 
40  class SubCellFE:
41  public MAST::FEBase {
42 
43  public:
44 
46  const MAST::LevelSetIntersection& intersection);
47 
48  virtual ~SubCellFE();
49 
54  virtual void init(const MAST::GeomElem& elem,
55  bool init_grads,
56  const std::vector<libMesh::Point>* pts = nullptr);
57 
62  virtual void init_for_side(const MAST::GeomElem& elem,
63  unsigned int s,
64  bool if_calculate_dphi);
65 
66  virtual const std::vector<Real>&
67  get_JxW() const;
68 
69  virtual const std::vector<libMesh::Point>&
70  get_qpoints() const;
71 
72  protected:
73 
74 
76 
77  std::vector<Real> _subcell_JxW;
78  };
79 }
80 
81 #endif // __mast_sub_cell_fe_h__
std::vector< Real > _subcell_JxW
Definition: sub_cell_fe.h:77
const MAST::LevelSetIntersection & _intersection
Definition: sub_cell_fe.h:75
SubCellFE(const MAST::SystemInitialization &sys, const MAST::LevelSetIntersection &intersection)
Definition: sub_cell_fe.cpp:33
virtual const std::vector< Real > & get_JxW() const
virtual ~SubCellFE()
Definition: sub_cell_fe.cpp:42
virtual const std::vector< libMesh::Point > & get_qpoints() const
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 init(const MAST::GeomElem &elem, bool init_grads, const std::vector< libMesh::Point > *pts=nullptr)
This assumes that elem is the sub-cell and that the original element will be available as the parent ...
Definition: sub_cell_fe.cpp:48
This class specializes the MAST::FEBase class for level-set applications where integration is to be p...
Definition: sub_cell_fe.h:40
virtual void init_for_side(const MAST::GeomElem &elem, unsigned int s, bool if_calculate_dphi)
This assumes that elem is the sub-cell and that the original element will be available as the parent ...