Public Member Functions | Protected Member Functions | List of all members
oomph::AlgebraicFishMesh< ELEMENT > Class Template Reference

//////////////////////////////////////////////////////////////////// More...

#include <fish_mesh.template.h>

Inheritance diagram for oomph::AlgebraicFishMesh< ELEMENT >:
oomph::FishMesh< ELEMENT > oomph::AlgebraicRefineableFishMesh< ELEMENT >

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...
 
FishDomainDomain_pt
 Pointer to domain. More...
 
bool Must_kill_fish_back
 Do I need to kill the fish back geom object? More...
 

Detailed Description

template<class ELEMENT>
class oomph::AlgebraicFishMesh< ELEMENT >

////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////// Fish shaped mesh with algebraic node update function for nodes.

Definition at line 326 of file fish_mesh.template.h.

Constructor & Destructor Documentation

◆ AlgebraicFishMesh() [1/2]

template<class ELEMENT >
oomph::AlgebraicFishMesh< ELEMENT >::AlgebraicFishMesh ( TimeStepper *  time_stepper_pt = &Mesh::Default_TimeStepper)
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().

◆ AlgebraicFishMesh() [2/2]

template<class ELEMENT >
oomph::AlgebraicFishMesh< ELEMENT >::AlgebraicFishMesh ( GeomObject *  back_pt,
TimeStepper *  time_stepper_pt = &Mesh::Default_TimeStepper 
)
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().

◆ ~AlgebraicFishMesh()

template<class ELEMENT >
virtual oomph::AlgebraicFishMesh< ELEMENT >::~AlgebraicFishMesh ( )
inlinevirtual

Destructor: empty.

Definition at line 354 of file fish_mesh.template.h.

Member Function Documentation

◆ algebraic_node_update()

template<class ELEMENT >
void oomph::AlgebraicFishMesh< ELEMENT >::algebraic_node_update ( const unsigned &  t,
AlgebraicNode *&  node_pt 
)
inline

◆ node_update()

template<class ELEMENT >
virtual void oomph::AlgebraicFishMesh< ELEMENT >::node_update ( const bool &  update_all_solid_nodes = false)
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().

◆ node_update_in_body()

template<class ELEMENT >
void oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_body ( const unsigned &  t,
AlgebraicNode *&  node_pt 
)
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().

◆ node_update_in_fin()

template<class ELEMENT >
void oomph::AlgebraicFishMesh< ELEMENT >::node_update_in_fin ( const unsigned &  t,
AlgebraicNode *&  node_pt 
)
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().

◆ setup_algebraic_node_update()

template<class ELEMENT >
void oomph::AlgebraicFishMesh< ELEMENT >::setup_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().

◆ update_node_update()

template<class ELEMENT >
void oomph::AlgebraicFishMesh< ELEMENT >::update_node_update ( AlgebraicNode *&  node_pt)
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().


The documentation for this class was generated from the following files: