//////////////////////////////////////////////////////////////////// More...
#include <fish_mesh.template.h>
Public Member Functions | |
AlgebraicFishMesh (TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass pointer to timestepper. (defaults to (Steady) default timestepper defined in Mesh) More... | |
AlgebraicFishMesh (GeomObject *back_pt, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass pointer GeomObject that defines the fish's back and pointer to timestepper (defaults to (Steady) default timestepper defined in Mesh). More... | |
virtual | ~AlgebraicFishMesh () |
Destructor: empty. More... | |
void | algebraic_node_update (const unsigned &t, AlgebraicNode *&node_pt) |
Update nodal position at time level t (t=0: present; t>0: previous) More... | |
virtual void | node_update (const bool &update_all_solid_nodes=false) |
Resolve the node update function (we neither want the broken empty one in the Mesh base class nor the macro-element-based one in the RefineableQuadMesh base class but the AlgebraicElement one). [It doesn't make sense to use this mesh with SolidElements so we buffer the case if update_all_solid_nodes is set to true.]. More... | |
void | update_node_update (AlgebraicNode *&node_pt) |
Update the geometric references that are used to update node after mesh adaptation. We're assuming that the GeomObject that specifies the fish back does not have sub-objects, therefore no update is required – all reference values can simply be scaled. We simply paranoid-check that this is actually the case, by checking if locate_zeta() returns the original data. More... | |
Public Member Functions inherited from oomph::FishMesh< ELEMENT > | |
FishMesh (TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass pointer to timestepper (defaults to the (Steady) default timestepper defined in Mesh) More... | |
FishMesh (GeomObject *back_pt, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass pointer GeomObject that defines the fish's back and pointer to timestepper (defaults to the (Steady) default timestepper defined in Mesh) More... | |
virtual | ~FishMesh () |
Destructor: Kill the geom object that represents the fish's back (if necessary) More... | |
GeomObject *& | fish_back_pt () |
Access function to geom object that represents the fish's back. More... | |
FishDomain *& | domain_pt () |
Access function to FishDomain. More... | |
Protected Member Functions | |
void | node_update_in_body (const unsigned &t, AlgebraicNode *&node_pt) |
Algebraic update function for nodes in upper/lower body. More... | |
void | node_update_in_fin (const unsigned &t, AlgebraicNode *&node_pt) |
Algebraic update function for nodes in upper/lower fin. More... | |
void | setup_algebraic_node_update () |
Setup algebraic update operation for all nodes (separate function because this task needs to be performed by both constructors) More... | |
Protected Member Functions inherited from oomph::FishMesh< ELEMENT > | |
void | build_mesh (TimeStepper *time_stepper_pt) |
Build the mesh, using the geometric object identified by Back_pt. More... | |
Additional Inherited Members | |
Protected Types inherited from oomph::FishMesh< ELEMENT > | |
enum | { Lower_body , Upper_body , Lower_fin , Upper_fin } |
Remesh function ids. More... | |
Protected Attributes inherited from oomph::FishMesh< ELEMENT > | |
GeomObject * | Back_pt |
Pointer to fish back. More... | |
FishDomain * | Domain_pt |
Pointer to domain. More... | |
bool | Must_kill_fish_back |
Do I need to kill the fish back geom object? More... | |
////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////// Fish shaped mesh with algebraic node update function for nodes.
Definition at line 326 of file fish_mesh.template.h.
|
inline |
Constructor: Pass pointer to timestepper. (defaults to (Steady) default timestepper defined in Mesh)
Definition at line 332 of file fish_mesh.template.h.
References oomph::AlgebraicFishMesh< ELEMENT >::setup_algebraic_node_update().
|
inline |
Constructor: Pass pointer GeomObject that defines the fish's back and pointer to timestepper (defaults to (Steady) default timestepper defined in Mesh).
Definition at line 342 of file fish_mesh.template.h.
References oomph::AlgebraicFishMesh< ELEMENT >::setup_algebraic_node_update().
|
inlinevirtual |
Destructor: empty.
Definition at line 354 of file fish_mesh.template.h.
|
inline |
Update nodal position at time level t (t=0: present; t>0: previous)
Definition at line 358 of file fish_mesh.template.h.
References oomph::FishMesh< ELEMENT >::Lower_body, oomph::FishMesh< ELEMENT >::Lower_fin, oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_body(), oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_fin(), oomph::FishMesh< ELEMENT >::Upper_body, and oomph::FishMesh< ELEMENT >::Upper_fin.
|
inlinevirtual |
Resolve the node update function (we neither want the broken empty one in the Mesh base class nor the macro-element-based one in the RefineableQuadMesh base class but the AlgebraicElement one). [It doesn't make sense to use this mesh with SolidElements so we buffer the case if update_all_solid_nodes is set to true.].
Reimplemented in oomph::AlgebraicRefineableFishMesh< ELEMENT >.
Definition at line 395 of file fish_mesh.template.h.
Referenced by oomph::AlgebraicRefineableFishMesh< ELEMENT >::node_update().
|
protected |
Algebraic update function for nodes in upper/lower body.
Algebraic update function: Update in (upper or lower) body according to wall shape at time level t (t=0: present; t>0: previous)
Definition at line 893 of file fish_mesh.template.cc.
Referenced by oomph::AlgebraicFishMesh< ELEMENT >::algebraic_node_update().
|
protected |
Algebraic update function for nodes in upper/lower fin.
Algebraic update function: Update in (upper or lower) fin according to wall shape at time level t (t=0: present; t>0: previous)
Definition at line 949 of file fish_mesh.template.cc.
Referenced by oomph::AlgebraicFishMesh< ELEMENT >::algebraic_node_update().
|
protected |
Setup algebraic update operation for all nodes (separate function because this task needs to be performed by both constructors)
////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////// Setup algebraic update operation. Nodes are "suspended" from the fish's back and the upper edge of the fin. Nodes in the lower half are placed symmetrically.
Pointer to algebraic element in lower body
Definition at line 682 of file fish_mesh.template.cc.
Referenced by oomph::AlgebraicFishMesh< ELEMENT >::AlgebraicFishMesh().
|
inline |
Update the geometric references that are used to update node after mesh adaptation. We're assuming that the GeomObject that specifies the fish back does not have sub-objects, therefore no update is required – all reference values can simply be scaled. We simply paranoid-check that this is actually the case, by checking if locate_zeta() returns the original data.
Start coordinate on wall (near nose)
End coordinate on wall (near tail)
Check halfway along the object
Definition at line 424 of file fish_mesh.template.h.
References oomph::FishMesh< ELEMENT >::Back_pt, oomph::FishMesh< ELEMENT >::Domain_pt, oomph::FishDomain::xi_nose(), and oomph::FishDomain::xi_tail().