Tatooine
|
Namespaces | |
namespace | autonomous_particle |
namespace | for_loop |
namespace | geometry |
namespace | line |
namespace | linspace |
namespace | pointset |
namespace | rectilinear_grid |
namespace | structured_grid |
namespace | unstructured_simplicial_grid |
namespace | vortex_core_lines |
Classes | |
struct | aabb_ray_intersectable_parent |
struct | celltree_parent |
struct | celltree_parent< Celltree, real_type, 3, 3 > |
Functions | |
template<typename MeshCont > | |
auto | write_unstructured_triangular_grid_container_to_vtk (MeshCont const &grids, std::filesystem::path const &path, std::string const &title="tatooine grids") |
auto | write_unstructured_triangular_grid_container_to_vtp (range auto const &grids, std::filesystem::path const &path) |
template<typename Real , typename T0 , typename T1 , typename T2 , typename T3 > | |
constexpr auto | eval_bilinear (base_tensor< T0, Real, 2 > const &v00, base_tensor< T1, Real, 2 > const &v10, base_tensor< T2, Real, 2 > const &v01, base_tensor< T3, Real, 2 > const &v11, Real const s, Real const t) |
template<typename Real , typename T0 , typename T1 , typename T2 , typename T3 > | |
auto | solve_bilinear (base_tensor< T0, Real, 2 > const &v00, base_tensor< T1, Real, 2 > const &v10, base_tensor< T2, Real, 2 > const &v01, base_tensor< T3, Real, 2 > const &v11) |
template<typename Real , invocable< Vec3< Real > >... Preds> | |
constexpr auto | pv_on_tri (Vec3< Real > const &p0, Vec3< Real > const &v0, Vec3< Real > const &w0, Vec3< Real > const &p1, Vec3< Real > const &v1, Vec3< Real > const &w1, Vec3< Real > const &p2, Vec3< Real > const &v2, Vec3< Real > const &w2, Preds &&... preds) -> std::optional< Vec3< Real > > |
template<typename Real > | |
static auto | check_tet (std::optional< Vec3< Real > > const &tri0, std::optional< Vec3< Real > > const &tri1, std::optional< Vec3< Real > > const &tri2, std::optional< Vec3< Real > > const &tri3, std::vector< Line3< Real > > &lines) |
auto constexpr | is_even (integral auto const i) |
template<signed_integral Int = int> | |
auto constexpr | sign (bool pred) -> Int |
auto constexpr | turned (integral auto const ... is) -> bool |
auto | check_turned_cube (auto const &x_faces, auto const &y_faces, auto const &z_faces, auto const &inner_faces, auto &ls, auto const ix, auto const iy) |
auto | check_unturned_cube (auto const &x_faces, auto const &y_faces, auto const &z_faces, auto const &inner_faces, auto &ls, auto const ix, auto const iy) |
auto | check_cube (auto const &x_faces, auto const &y_faces, auto const &z_faces, auto const &inner_faces, auto &ls, auto const ix, auto const iy, auto const iz) |
template<typename Real , typename GetV , typename GetW , typename XDomain , typename YDomain , typename ZDomain , invocable< Vec3< Real > >... Preds> | |
auto | calc_parallel_vectors (GetV &&getv, GetW &&getw, tatooine::rectilinear_grid< XDomain, YDomain, ZDomain > const &g, execution_policy::parallel_t const policy, Preds &&... preds) -> std::vector< Line3< Real > > |
template<typename Real , typename GetV , typename GetW , typename XDomain , typename YDomain , typename ZDomain , invocable< Vec3< Real > >... Preds> | |
auto | calc_parallel_vectors (GetV &&getv, GetW &&getw, tatooine::rectilinear_grid< XDomain, YDomain, ZDomain > const &g, execution_policy::sequential_t const policy, Preds &&... preds) |
template<typename Real , typename GetV , typename GetW , typename XDomain , typename YDomain , typename ZDomain , invocable< Vec3< Real > >... Preds> | |
auto | calc_parallel_vectors (GetV &&getv, GetW &&getw, tatooine::rectilinear_grid< XDomain, YDomain, ZDomain > const &g, execution_policy_tag auto const policy, Preds &&... preds) |
auto tatooine::detail::calc_parallel_vectors | ( | GetV && | getv, |
GetW && | getw, | ||
tatooine::rectilinear_grid< XDomain, YDomain, ZDomain > const & | g, | ||
execution_policy::parallel_t const | policy, | ||
Preds &&... | preds | ||
) | -> std::vector<Line3<Real>> |
Framework for calculating PV Operator.
getv | function for getting value for V field |
getw | function for getting value for W field |
The algorithm processes z-slabs in parallel. For each slab all constant x-faces, all constant y-faces and all faces of each inner cube's tetrahedron are stored in a 2-D arrays. To be able to compute the cells of the grid both sides of the constant z-faces are needed. These are being stored ping-pong-wise.
auto tatooine::detail::calc_parallel_vectors | ( | GetV && | getv, |
GetW && | getw, | ||
tatooine::rectilinear_grid< XDomain, YDomain, ZDomain > const & | g, | ||
execution_policy::sequential_t const | policy, | ||
Preds &&... | preds | ||
) |
Framework for calculating PV Operator.
getv | function for getting value for V field |
getw | function for getting value for W field |
The algorithm processes z-slabs sequentially. For each slab all constant x-faces, all constant y-faces and all faces of each inner cube's tetrahedron are stored in a 2-D arrays. To be able to compute the cells of the grid both sides of the constant z-faces are needed. These are being stored ping-pong-wise.
auto tatooine::detail::calc_parallel_vectors | ( | GetV && | getv, |
GetW && | getw, | ||
tatooine::rectilinear_grid< XDomain, YDomain, ZDomain > const & | g, | ||
execution_policy_tag auto const | policy, | ||
Preds &&... | preds | ||
) |
Framework for calculating PV Operator.
getv | function for getting value for V field |
getw | function for getting value for W field |
auto tatooine::detail::check_cube | ( | auto const & | x_faces, |
auto const & | y_faces, | ||
auto const & | z_faces, | ||
auto const & | inner_faces, | ||
auto & | ls, | ||
auto const | ix, | ||
auto const | iy, | ||
auto const | iz | ||
) |
|
static |
auto tatooine::detail::check_turned_cube | ( | auto const & | x_faces, |
auto const & | y_faces, | ||
auto const & | z_faces, | ||
auto const & | inner_faces, | ||
auto & | ls, | ||
auto const | ix, | ||
auto const | iy | ||
) |
auto tatooine::detail::check_unturned_cube | ( | auto const & | x_faces, |
auto const & | y_faces, | ||
auto const & | z_faces, | ||
auto const & | inner_faces, | ||
auto & | ls, | ||
auto const | ix, | ||
auto const | iy | ||
) |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
auto tatooine::detail::solve_bilinear | ( | base_tensor< T0, Real, 2 > const & | v00, |
base_tensor< T1, Real, 2 > const & | v10, | ||
base_tensor< T2, Real, 2 > const & | v01, | ||
base_tensor< T3, Real, 2 > const & | v11 | ||
) |
|
constexpr |
auto tatooine::detail::write_unstructured_triangular_grid_container_to_vtk | ( | MeshCont const & | grids, |
std::filesystem::path const & | path, | ||
std::string const & | title = "tatooine grids" |
||
) |
auto tatooine::detail::write_unstructured_triangular_grid_container_to_vtp | ( | range auto const & | grids, |
std::filesystem::path const & | path | ||
) |