Algebraic version of RefineableQuarterCircleSectorMesh. More...
#include <quarter_circle_sector_mesh.template.h>
Public Member Functions | |
AlgebraicRefineableQuarterCircleSectorMesh (GeomObject *wall_pt, const double &xi_lo, const double &fract_mid, const double &xi_hi, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass pointer to geometric object, start and end coordinates on the geometric object and the fraction along which the dividing line is to be placed when updating the nodal positions, and timestepper (defaults to (Steady) default timestepper defined in Mesh). Setup the refineable mesh (by calling the constructor for the underlying RefineableQuarterCircleSectorMesh) and the algebraic update functions for nodes. More... | |
unsigned | self_test () |
Run self-test for algebraic mesh – return 0/1 for OK/failure. More... | |
void | node_update (const bool &update_all_solid_nodes=false) |
Resolve mesh update: Update current nodal positions via algebraic node update. [Doesn't make sense to use this mesh with SolidElements anyway, so we buffer the case if update_all_solid_nodes is set to true.]. More... | |
void | algebraic_node_update (const unsigned &t, AlgebraicNode *&node_pt) |
Implement the algebraic node update function for a node at time level t (t=0: present; t>0: previous): Update with the node's first (default) update function. More... | |
void | update_node_update (AlgebraicNode *&node_pt) |
Update the node update info for specified algebraic node following any spatial mesh adaptation. More... | |
Public Member Functions inherited from oomph::RefineableQuarterCircleSectorMesh< ELEMENT > | |
RefineableQuarterCircleSectorMesh (GeomObject *wall_pt, const double &xi_lo, const double &fract_mid, const double &xi_hi, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass pointer to geometric object that specifies the wall, start and end coordinates on the geometric object, and the fraction along which the dividing line is to be placed, and the timestepper (defaults to (Steady) default timestepper defined in Mesh). Adds refinement data to elements of QuarterCircleSectorMesh. More... | |
virtual | ~RefineableQuarterCircleSectorMesh () |
Destructor: Empty. More... | |
Public Member Functions inherited from oomph::QuarterCircleSectorMesh< ELEMENT > | |
QuarterCircleSectorMesh (GeomObject *wall_pt, const double &xi_lo, const double &fract_mid, const double &xi_hi, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass pointer to geometric object that specifies the wall, start and end coordinates on the geometric object, and the fraction along which the dividing line is to be placed, and the timestepper (defaults to (Steady) default timestepper defined in Mesh) More... | |
virtual | ~QuarterCircleSectorMesh () |
Destructor: More... | |
GeomObject *& | wall_pt () |
Access function to GeomObject representing wall. More... | |
QuarterCircleSectorDomain * | domain_pt () |
Access function to domain. More... | |
QuarterCircleSectorDomain::BLSquashFctPt & | bl_squash_fct_pt () |
Function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value (defined in the underlying Domain object) More... | |
Private Types | |
enum | { Central_box , Lower_right_box , Upper_left_box } |
Remesh function ids. More... | |
Private Member Functions | |
void | node_update_in_central_box (const unsigned &t, AlgebraicNode *&node_pt) |
Algebraic update function for a node that is located in the central box. More... | |
void | node_update_in_lower_right_box (const unsigned &t, AlgebraicNode *&node_pt) |
Algebraic update function for a node that is located in the lower right box. More... | |
void | node_update_in_upper_left_box (const unsigned &t, AlgebraicNode *&node_pt) |
Algebraic update function for a node that is located in the upper left box. More... | |
void | setup_algebraic_node_update () |
Setup algebraic update operation for all nodes. More... | |
void | update_node_update_in_lower_right_box (AlgebraicNode *&node_pt) |
Update algebraic node update function for nodes in lower right box. More... | |
void | update_node_update_in_upper_left_box (AlgebraicNode *&node_pt) |
Update algebraic node update function for nodes in upper left box. More... | |
Private Attributes | |
double | Lambda_x |
Fractional width of central box. More... | |
double | Lambda_y |
Fractional height of central box. More... | |
Additional Inherited Members | |
Protected Attributes inherited from oomph::QuarterCircleSectorMesh< ELEMENT > | |
QuarterCircleSectorDomain * | Domain_pt |
Pointer to Domain. More... | |
GeomObject * | Wall_pt |
Pointer to the geometric object that represents the curved wall (mesh boundary 1) More... | |
double | Xi_lo |
Lower limit for the (1D) coordinates along the wall. More... | |
double | Fract_mid |
Fraction along wall where outer ring is to be divided. More... | |
double | Xi_hi |
Upper limit for the (1D) coordinates along the wall. More... | |
Algebraic version of RefineableQuarterCircleSectorMesh.
Domain is parametrised by three macro elements as sketched. Elements need to be derived from AlgebraicElementBase. In addition to all the refinement procedures available for RefineableQuarterCircleSectorMesh which forms the basis for this mesh, we implement algebraic node update functions for the nodes.
Definition at line 439 of file quarter_circle_sector_mesh.template.h.
|
private |
Remesh function ids.
Enumerator | |
---|---|
Central_box | |
Lower_right_box | |
Upper_left_box |
Definition at line 625 of file quarter_circle_sector_mesh.template.h.
|
inline |
Constructor: Pass pointer to geometric object, start and end coordinates on the geometric object and the fraction along which the dividing line is to be placed when updating the nodal positions, and timestepper (defaults to (Steady) default timestepper defined in Mesh). Setup the refineable mesh (by calling the constructor for the underlying RefineableQuarterCircleSectorMesh) and the algebraic update functions for nodes.
Definition at line 451 of file quarter_circle_sector_mesh.template.h.
References oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::setup_algebraic_node_update(), and oomph::QuarterCircleSectorMesh< ELEMENT >::wall_pt().
|
inline |
Implement the algebraic node update function for a node at time level t (t=0: present; t>0: previous): Update with the node's first (default) update function.
Definition at line 527 of file quarter_circle_sector_mesh.template.h.
References oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::Central_box, oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::Lower_right_box, oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_central_box(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_lower_right_box(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::node_update_in_upper_left_box(), and oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::Upper_left_box.
|
inline |
Resolve mesh update: Update current nodal positions via algebraic node update. [Doesn't make sense to use this mesh with SolidElements anyway, so we buffer the case if update_all_solid_nodes is set to true.].
Definition at line 501 of file quarter_circle_sector_mesh.template.h.
|
private |
Algebraic update function for a node that is located in the central box.
Algebraic update function: Update in central box according to wall shape at time level t (t=0: present; t>0: previous)
Definition at line 851 of file quarter_circle_sector_mesh.template.cc.
Referenced by oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::algebraic_node_update().
|
private |
Algebraic update function for a node that is located in the lower right box.
Algebraic update function: Update in lower right box according to wall shape at time level t (t=0: present; t>0: previous)
Definition at line 940 of file quarter_circle_sector_mesh.template.cc.
Referenced by oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::algebraic_node_update().
|
private |
Algebraic update function for a node that is located in the upper left box.
Algebraic update function: Update in upper left box according to wall shape at time level t (t=0: present; t>0: previous)
Definition at line 1048 of file quarter_circle_sector_mesh.template.cc.
Referenced by oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::algebraic_node_update().
|
inline |
Run self-test for algebraic mesh – return 0/1 for OK/failure.
Definition at line 491 of file quarter_circle_sector_mesh.template.h.
|
private |
Setup algebraic update operation for all nodes.
////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////// Setup algebraic update operation, based on individual blocks. Mesh is suspended from the ‘wall’ GeomObject pointed to by wall_pt. The lower right corner of the mesh is located at the wall's coordinate xi_lo, the upper left corner at xi_hi; The dividing line between the two blocks at the outer ring is located at the fraction fract_mid between these two coordinates. Node updating strategy:
Pointer to algebraic element in central box
Definition at line 557 of file quarter_circle_sector_mesh.template.cc.
Referenced by oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::AlgebraicRefineableQuarterCircleSectorMesh().
|
inline |
Update the node update info for specified algebraic node following any spatial mesh adaptation.
Definition at line 573 of file quarter_circle_sector_mesh.template.h.
References oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::Central_box, oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::Lower_right_box, oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::update_node_update_in_lower_right_box(), oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::update_node_update_in_upper_left_box(), and oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::Upper_left_box.
|
private |
Update algebraic node update function for nodes in lower right box.
Update algebraic update function for nodes in lower right box.
Definition at line 1159 of file quarter_circle_sector_mesh.template.cc.
Referenced by oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::update_node_update().
|
private |
Update algebraic node update function for nodes in upper left box.
Update algebraic update function for nodes in upper left box.
Definition at line 1259 of file quarter_circle_sector_mesh.template.cc.
Referenced by oomph::AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT >::update_node_update().
|
private |
Fractional width of central box.
Definition at line 634 of file quarter_circle_sector_mesh.template.h.
|
private |
Fractional height of central box.
Definition at line 637 of file quarter_circle_sector_mesh.template.h.