WARPXM v1.10.0
Loading...
Searching...
No Matches
wmstructuredgeometry.h
Go to the documentation of this file.
1#ifndef WMSTRUCTUREDGEOMETRY_H_
2#define WMSTRUCTUREDGEOMETRY_H_
3
4// warpxm includes
5#include "warpxm/warpxm_config.h"
7
8// STL includes
9#include <vector>
10
18{
19public:
24 WmStructuredGeometry(const WmBasisArraySet& PhaseSpaceBasisArraySet);
25
31
36 void setup();
37
42 virtual void generateNormals() = 0;
43
49
55
61 virtual int getOppositeVelocityDirectedFaceNode(const int globalNodeNumber,
62 const int faceNumber) = 0;
63
68 const std::vector<real>& getRealNormal(const int face)
69 {
70 return _real_normals[face];
71 }
72
77 const std::vector<real>& getIsoparametricNormal(const int face)
78 {
79 return _isoparametric_normals[face];
80 }
81
86 const std::vector<int>& getPositionDirectedFaceNumbers()
87 {
89 }
90
95 const std::vector<int>& getVelocityDirectedFaceNumbers()
96 {
98 }
99
105 {
106 return _node_orientation;
107 }
108
117 {
119 }
120
121protected:
122 std::vector<int> _position_directed_faces; // faces with some component of normal in
123 // physical space direction (x)
124
126
127 std::vector<int> _velocity_directed_faces; // faces with no copoonent of normal in
128 // physical space direction
130
131 std::vector<int>
132 _velocity_directed_opposite_faces; // the opposite faces with no copoonent of
133 // normal in physical space direction
134
135 std::vector<std::vector<real>>
136 _real_normals; // normals real space [N_f_phase_space] x [N_d_phase_space]
137
138 std::vector<std::vector<real>>
139 _isoparametric_normals; // isoparametric real space [N_fp_phase_space] x
140 // [N_d_phase_space]
141
143
145};
146
147#endif
Definition: wmbasisarrayset.h:13
Class used for generating Structured Geometry information for kinetic phase space calculations.
Definition: wmstructuredgeometry.h:18
void setup()
Setup calls some of these functions that we want to setup.
std::vector< int > _velocity_directed_opposite_faces
Definition: wmstructuredgeometry.h:132
std::vector< std::vector< real > > _real_normals
Definition: wmstructuredgeometry.h:136
virtual void generateVelocityDirectedFaceNumbers()=0
Generate the face numbers with components of normal in velocity direction.
virtual void generateNormals()=0
Generate the face normals of this type of element.
std::vector< int > _velocity_directed_faces
Definition: wmstructuredgeometry.h:127
const std::vector< real > & getRealNormal(const int face)
Get the real face normals of this type of element.
Definition: wmstructuredgeometry.h:68
const std::vector< int > & getVelocityDirectedOppositeFaceNumbers()
Get the opposite face numbers with components of normal in velocity direction These are the velocity ...
Definition: wmstructuredgeometry.h:116
WmStructuredGeometry(const WmBasisArraySet &PhaseSpaceBasisArraySet)
Create unstructured geometry for a given patch.
std::vector< int > _position_directed_faces
Definition: wmstructuredgeometry.h:122
int _num_velocity_directed_faces
Definition: wmstructuredgeometry.h:129
const std::vector< int > & getVelocityDirectedFaceNumbers()
Get the face numbers with components of normal in velocity direction.
Definition: wmstructuredgeometry.h:95
int _num_position_directed_faces
Definition: wmstructuredgeometry.h:125
const std::vector< int > & getPositionDirectedFaceNumbers()
Get the face numbers with components of normal in position direction.
Definition: wmstructuredgeometry.h:86
int _node_orientation
Definition: wmstructuredgeometry.h:142
std::vector< std::vector< real > > _isoparametric_normals
Definition: wmstructuredgeometry.h:139
virtual int getOppositeVelocityDirectedFaceNode(const int globalNodeNumber, const int faceNumber)=0
gets the opposite node number on a velocity directed face, given a global node number on the inside e...
const std::vector< real > & getIsoparametricNormal(const int face)
Get the parametric face normals of this type of element.
Definition: wmstructuredgeometry.h:77
int getNodeOrientation()
Get node orientation.
Definition: wmstructuredgeometry.h:104
WmBasisArraySet _phase_space_basis_array_set
Definition: wmstructuredgeometry.h:144
virtual ~WmStructuredGeometry()
Destroy geometry.
virtual void generatePositionDirectedFaceNumbers()=0
Generate the face numbers with components of normal in position direction.