#include <ERF_EBPolygon.H>
|
AMREX_GPU_HOST_DEVICE | polygon_ (amrex::RealVect a_point, amrex::RealVect a_normal) |
|
AMREX_GPU_HOST_DEVICE | polygon_ () |
|
AMREX_GPU_HOST_DEVICE void | add_vertex (amrex::RealVect const &a_v) |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | set_area (amrex::Real const &a_area) |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void | define () |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int | ok () const noexcept |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | area () const noexcept |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | distance (amrex::RealVect const &a_point) const noexcept |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::RealVect | get_centroid () const noexcept |
|
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::RealVect | normal () const noexcept |
|
void | report (int const a_id, amrex::RealVect a_v0) |
|
void | debug (int const a_id) |
|
void | debug () |
|
◆ polygon_() [1/2]
AMREX_GPU_HOST_DEVICE polygon_::polygon_ |
( |
amrex::RealVect |
a_point, |
|
|
amrex::RealVect |
a_normal |
|
) |
| |
|
inline |
23 ,
m_vertex({amrex::RealVect(0.), amrex::RealVect(0.), amrex::RealVect(0.),
24 amrex::RealVect(0.), amrex::RealVect(0.), amrex::RealVect(0.)})
int m_defined
Definition: ERF_EBPolygon.H:217
amrex::Real m_area
Definition: ERF_EBPolygon.H:221
int const m_cell_face
Definition: ERF_EBPolygon.H:212
int m_sorted
Definition: ERF_EBPolygon.H:223
int m_vertices
Definition: ERF_EBPolygon.H:219
amrex::Array< amrex::RealVect, m_max_vertices > m_vertex
Definition: ERF_EBPolygon.H:225
amrex::RealVect const m_eb_normal
Definition: ERF_EBPolygon.H:215
amrex::RealVect const m_eb_point
Definition: ERF_EBPolygon.H:214
amrex::RealVect m_zdir
Definition: ERF_EBPolygon.H:229
◆ polygon_() [2/2]
AMREX_GPU_HOST_DEVICE polygon_::polygon_ |
( |
| ) |
|
|
inline |
37 ,
m_vertex({amrex::RealVect(0.), amrex::RealVect(0.), amrex::RealVect(0.),
38 amrex::RealVect(0.), amrex::RealVect(0.), amrex::RealVect(0.)})
◆ add_vertex()
AMREX_GPU_HOST_DEVICE void polygon_::add_vertex |
( |
amrex::RealVect const & |
a_v | ) |
|
|
inline |
◆ area()
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real polygon_::area |
( |
| ) |
const |
|
inlinenoexcept |
◆ debug() [1/2]
void debug()
Definition: ERF_EBPolygon.H:204
◆ debug() [2/2]
void polygon_::debug |
( |
int const |
a_id | ) |
|
|
inline |
199 amrex::Print() <<
"EBPolygon: id = " << a_id <<
", m_vertices = " <<
m_vertices <<
'\n';
201 amrex::Print() <<
"EBPolygon: v" << i <<
": " <<
m_vertex[i] <<
'\n';
◆ define()
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void polygon_::define |
( |
| ) |
|
|
inline |
82 amrex::Array<amrex::RealVect,m_max_vertices> vertex_cent;
88 m_zdir = vertex_cent[0].crossProduct(vertex_cent[i]);
89 if ( !amrex::almostEqual(
m_zdir.vectorLength(),0.) ) {
break; }
91 AMREX_ALWAYS_ASSERT(!amrex::almostEqual(
m_zdir.vectorLength(), 0.));
97 m_theta[i] = std::atan2(
m_zdir.dotProduct( vertex_cent[0].crossProduct(vertex_cent[i]) ),
98 vertex_cent[0].dotProduct(vertex_cent[i]));
109 amrex::Swap(vertex_cent[j], vertex_cent[j+1]);
118 amrex::RealVect vi_cross_vj = vertex_cent[i].crossProduct(vertex_cent[j]);
119 m_area += 0.5*vi_cross_vj.vectorLength();
121 AMREX_ALWAYS_ASSERT(
m_area > 0. );
constexpr amrex::Real PI
Definition: ERF_Constants.H:6
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::RealVect get_centroid() const noexcept
Definition: ERF_EBPolygon.H:144
amrex::GpuArray< amrex::Real, m_max_vertices > m_theta
Definition: ERF_EBPolygon.H:227
◆ distance()
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real polygon_::distance |
( |
amrex::RealVect const & |
a_point | ) |
const |
|
inlinenoexcept |
◆ get_centroid()
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::RealVect polygon_::get_centroid |
( |
| ) |
const |
|
inlinenoexcept |
145 amrex::RealVect cent(0.);
150 amrex::Real
area(0.);
154 amrex::RealVect v0_cross_v1 = v0.crossProduct(v1);
155 amrex::Real area_tri = 0.5 * v0_cross_v1.vectorLength();
158 cent += area_tri * cent_tri;
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real area() const noexcept
Definition: ERF_EBPolygon.H:129
Referenced by eb_cut_cell_::centBoun(), eb_cut_cell_::centVol(), define(), and report().
◆ normal()
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::RealVect polygon_::normal |
( |
| ) |
const |
|
inlinenoexcept |
◆ ok()
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int polygon_::ok |
( |
| ) |
const |
|
inlinenoexcept |
◆ report()
void polygon_::report |
( |
int const |
a_id, |
|
|
amrex::RealVect |
a_v0 |
|
) |
| |
|
inline |
178 #ifndef AMREX_USE_GPU
180 amrex::Print() <<
"Face " << a_id
181 <<
" -------------------------------------------\n"
182 <<
"\nok? " << (
ok() ?
"yes" :
"no") <<
"\n\n";
184 amrex::Print() <<
"v" << i <<
": " <<
m_vertex[i] <<
'\n';
186 amrex::Print() <<
"\nvc: " <<
" " << centroid <<
"\n";
188 amrex::Real
const dist =
distance( a_v0 );
191 amrex::Print() <<
"\narea: " <<
m_area
192 <<
"\ndistance: " << dist
193 <<
"\nvolume: " << dist*
m_area
194 <<
"\n==================================================\n\n";
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real distance(amrex::RealVect const &a_point) const noexcept
Definition: ERF_EBPolygon.H:136
◆ set_area()
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void polygon_::set_area |
( |
amrex::Real const & |
a_area | ) |
|
|
inline |
◆ m_area
amrex::Real polygon_::m_area |
|
private |
◆ m_cell_face
int const polygon_::m_cell_face |
|
private |
◆ m_defined
◆ m_eb_normal
amrex::RealVect const polygon_::m_eb_normal |
|
private |
◆ m_eb_point
amrex::RealVect const polygon_::m_eb_point |
|
private |
◆ m_max_vertices
constexpr int polygon_::m_max_vertices = 6 |
|
staticconstexprprivate |
◆ m_sorted
◆ m_theta
◆ m_vertex
◆ m_vertices
◆ m_zdir
amrex::RealVect polygon_::m_zdir |
|
private |
The documentation for this class was generated from the following file: