hyper.deal
Loading...
Searching...
No Matches
hyperdeal::GridGenerator Namespace Reference

Functions

template<int dim_x, int dim_v>
void subdivided_hyper_rectangle (std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const unsigned int &n_refinements_x, const std::vector< unsigned int > &repetitions_x, const dealii::Point< dim_x > &left_x, const dealii::Point< dim_x > &right_x, const bool do_periodic_x, const unsigned int &n_refinements_v, const std::vector< unsigned int > &repetitions_v, const dealii::Point< dim_v > &left_v, const dealii::Point< dim_v > &right_v, const bool do_periodic_v, const bool with_internal_deformation=false)
 
template<int dim_x, int dim_v>
void hyper_cube (std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const unsigned int &n_refinements_x, const double left_x, const double right_x, const bool do_periodic_x, const unsigned int &n_refinements_v, const double left_v, const double right_v, const bool do_periodic_v)
 
template<int dim_x, int dim_v>
void hyper_cube (std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const bool do_periodic, const unsigned int &n_refinements, const double left=0.0, const double right=1.0)
 
template<int dim_x, int dim_v>
void orientated_hyper_cube (std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const unsigned int &n_refinements_x, const dealii::Point< dim_x > &left_x, const dealii::Point< dim_x > &right_x, const bool do_periodic_x, const unsigned int &orientation_x, const unsigned int &n_refinements_v, const dealii::Point< dim_v > &left_v, const dealii::Point< dim_v > &right_v, const bool do_periodic_v, const unsigned int &orientation_v)
 
template<int dim_x, int dim_v>
void subdivided_hyper_ball (std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const unsigned int &n_refinements_x, const dealii::Point< dim_x > &left_x, const dealii::Point< dim_x > &right_x, const bool do_periodic_x, const unsigned int &n_refinements_v, const dealii::Point< dim_v > &left_v, const dealii::Point< dim_v > &right_v, const bool do_periodic_v)
 
template<int dim_x, int dim_v>
void construct_tensor_product (std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > &tria_x, std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > &tria_v, const std::function< void(dealii::Triangulation< dim_x > &)> fu_x, const std::function< void(dealii::Triangulation< dim_v > &)> fu_v)
 

Detailed Description

This namespace provides a collection of functions for generating triangulations for some basic tensor-product geometries.

TODO: replace shared_ptr!

Function Documentation

◆ hyper_cube() [1/2]

template<int dim_x, int dim_v>
void hyperdeal::GridGenerator::hyper_cube ( std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > & tria_x,
std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > & tria_v,
const bool do_periodic,
const unsigned int & n_refinements,
const double left = 0.0,
const double right = 1.0 )

Same as above but that the parameters of x- and v-space triangulation are chosen the same way.

◆ hyper_cube() [2/2]

template<int dim_x, int dim_v>
void hyperdeal::GridGenerator::hyper_cube ( std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > & tria_x,
std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > & tria_v,
const unsigned int & n_refinements_x,
const double left_x,
const double right_x,
const bool do_periodic_x,
const unsigned int & n_refinements_v,
const double left_v,
const double right_v,
const bool do_periodic_v )

Create two dealii::GridGenerator::hyper_cube().

◆ orientated_hyper_cube()

template<int dim_x, int dim_v>
void hyperdeal::GridGenerator::orientated_hyper_cube ( std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > & tria_x,
std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > & tria_v,
const unsigned int & n_refinements_x,
const dealii::Point< dim_x > & left_x,
const dealii::Point< dim_x > & right_x,
const bool do_periodic_x,
const unsigned int & orientation_x,
const unsigned int & n_refinements_v,
const dealii::Point< dim_v > & left_v,
const dealii::Point< dim_v > & right_v,
const bool do_periodic_v,
const unsigned int & orientation_v )

Same as above but that each coarse cell is subdivided in z-direction. In contrast to hyperdeal::GridGenerator::subdivided_hyper_rectangle, one can give the coarse cells different orientations (0 ≥ orientation_x, orientation_v < 16). This function is particular useful, since it is the most simple prototype of an unstrucured grid and enables straight-forward debugging.

Note
Only implemented for dim_x==dim_v==3.

◆ subdivided_hyper_ball()

template<int dim_x, int dim_v>
void hyperdeal::GridGenerator::subdivided_hyper_ball ( std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > & tria_x,
std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > & tria_v,
const unsigned int & n_refinements_x,
const dealii::Point< dim_x > & left_x,
const dealii::Point< dim_x > & right_x,
const bool do_periodic_x,
const unsigned int & n_refinements_v,
const dealii::Point< dim_v > & left_v,
const dealii::Point< dim_v > & right_v,
const bool do_periodic_v )

Create two dealii::GridGenerator::hyper_ball().

Note
Before refinement, we remove the manifolds from geometric entities of the triangluations so that the final bounding faces look exactly like in the case of hyperdeal::GridGenerator::hyper_cube().

◆ subdivided_hyper_rectangle()

template<int dim_x, int dim_v>
void hyperdeal::GridGenerator::subdivided_hyper_rectangle ( std::shared_ptr< dealii::parallel::TriangulationBase< dim_x > > & tria_x,
std::shared_ptr< dealii::parallel::TriangulationBase< dim_v > > & tria_v,
const unsigned int & n_refinements_x,
const std::vector< unsigned int > & repetitions_x,
const dealii::Point< dim_x > & left_x,
const dealii::Point< dim_x > & right_x,
const bool do_periodic_x,
const unsigned int & n_refinements_v,
const std::vector< unsigned int > & repetitions_v,
const dealii::Point< dim_v > & left_v,
const dealii::Point< dim_v > & right_v,
const bool do_periodic_v,
const bool with_internal_deformation = false )

Create two dealii::GridGenerator::subdivided_hyper_rectangle().