DFT-EFE
 
Loading...
Searching...
No Matches
CellMappingBase.h
Go to the documentation of this file.
1#ifndef dftefeCellMappingBase_h
2#define dftefeCellMappingBase_h
3
4#include <vector>
5#include <utils/Point.h>
6namespace dftefe
7{
8 namespace basis
9 {
10 //
11 // forward declarations
12 //
13 class TriangulationCellBase;
14
15 enum class CellMappingType
16 {
17 LINEAR
18 //
19 // can add other mapping types
20 // like curvilinear maps
21 };
22
27 {
28 public:
29 virtual ~CellMappingBase() = default;
30 virtual void
31 getJxW(const TriangulationCellBase & triaCellBase,
32 const std::vector<dftefe::utils::Point> &paramPoints,
33 const std::vector<double> & weights,
34 std::vector<double> & valuesJxW) const = 0;
35
36 virtual void
38 const TriangulationCellBase &triaCellBase,
39 dftefe::utils::Point & parametricPoint,
40 bool & isPointInside) const = 0;
41
42 virtual void
43 getParametricPoints(const std::vector<dftefe::utils::Point> &realPoints,
44 const TriangulationCellBase & triaCellBase,
45 std::vector<utils::Point> &parametricPoints,
46 std::vector<bool> & arePointsInside) const = 0;
47
48 virtual void
49 getRealPoint(const dftefe::utils::Point & parametricPoint,
50 const TriangulationCellBase &triaCellBase,
51 dftefe::utils::Point & realPoint) const = 0;
52
53
54 virtual void
55 getRealPoints(const std::vector<dftefe::utils::Point> &parametricPoints,
56 const TriangulationCellBase & triaCellBase,
57 std::vector<dftefe::utils::Point> &realPoints) const = 0;
58
59 }; // end of class CellMappingBase
60
61
62 } // namespace basis
63
64} // namespace dftefe
65
66#endif
An abstract class to map a real point to parametric point and vice-versa.
Definition: CellMappingBase.h:27
virtual ~CellMappingBase()=default
virtual void getRealPoints(const std::vector< dftefe::utils::Point > &parametricPoints, const TriangulationCellBase &triaCellBase, std::vector< dftefe::utils::Point > &realPoints) const =0
virtual void getRealPoint(const dftefe::utils::Point &parametricPoint, const TriangulationCellBase &triaCellBase, dftefe::utils::Point &realPoint) const =0
virtual void getParametricPoints(const std::vector< dftefe::utils::Point > &realPoints, const TriangulationCellBase &triaCellBase, std::vector< utils::Point > &parametricPoints, std::vector< bool > &arePointsInside) const =0
virtual void getJxW(const TriangulationCellBase &triaCellBase, const std::vector< dftefe::utils::Point > &paramPoints, const std::vector< double > &weights, std::vector< double > &valuesJxW) const =0
virtual void getParametricPoint(const dftefe::utils::Point &realPoint, const TriangulationCellBase &triaCellBase, dftefe::utils::Point &parametricPoint, bool &isPointInside) const =0
An abstract class for an geometric cell. This is done to prevent the template (as required by deal....
Definition: TriangulationCellBase.h:20
Definition: PointImpl.h:13
CellMappingType
Definition: CellMappingBase.h:16
dealii includes
Definition: AtomFieldDataSpherical.cpp:31