Fish shaped domain, represented by four MacroElements. Shape is parametrised by GeomObject that represents the fish's back. More...
#include <fish_domain.h>
Public Member Functions | |
FishDomain (GeomObject *back_pt, const double &xi_nose, const double &xi_tail) | |
Constructor: Pass pointer to GeomObject that represents the (upper) curved boundary of the fish's body, and the start and end values of the Lagrangian coordinates along the GeomObject. | |
FishDomain (const FishDomain &)=delete | |
Broken copy constructor. | |
void | operator= (const FishDomain &)=delete |
Broken assignment operator. | |
virtual | ~FishDomain () |
Destructor for FishDomain: Empty; cleanup done in base class. | |
double & | x_fin () |
x-position of fin tip | |
double & | y_fin () |
y-position of fin tip | |
double & | x_mouth () |
x-position of mouth | |
double & | xi_nose () |
Start coordinate on wall (near nose) | |
double & | xi_tail () |
End coordinate on wall (near tail) | |
void | macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &zeta, Vector< double > &r) |
Vector representation of the i_macro-th macro element boundary i_direct (N/S/W/E) at the discrete time level t (t=0: present; t>0: previous): ![]() | |
![]() | |
Domain () | |
Constructor. | |
Domain (const Domain &)=delete | |
Broken copy constructor. | |
void | operator= (const Domain &)=delete |
Broken assignment operator. | |
virtual | ~Domain () |
Destructor: Strictly speaking, whoever creates an object dynamically should be responsible for the cleanup of said object but it makes sense here for the Domain to generically kill any MacroElements left over in the MacroElement container (if it hasn't already been done in the derived class) to avoid memory leaks. | |
MacroElement * | macro_element_pt (const unsigned &i) |
Access to i-th macro element. | |
unsigned | nmacro_element () |
Number of macro elements in domain. | |
void | output (const std::string &filename, const unsigned &nplot) |
Output macro elements. | |
void | output (std::ostream &outfile, const unsigned &nplot) |
Output macro elements. | |
virtual void | macro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D) at continuous time, t. | |
void | macro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D) at current time: f(s). | |
void | output_macro_element_boundaries (const std::string &filename, const unsigned &nplot) |
Output all macro element boundaries as tecplot zones. | |
void | output_macro_element_boundaries (std::ostream &outfile, const unsigned &nplot) |
Output all macro element boundaries as tecplot zones. | |
virtual void | dmacro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
Vector representation of the i_macro-th macro element boundary derivatives i_direct (e.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s). Broken virtual. | |
virtual void | dmacro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
Vector representation of the i_macro-th macro element boundary derivatives i_direct (e.g. N/S/W/E in 2D) at continuous time level t. Broken virtual. | |
void | dmacro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
Vector representation of the i_macro-th macro element boundary derivatives i_direct (e.g. N/S/W/E in 2D) at current time: f(s). | |
virtual void | d2macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
Vector representation of the i_macro-th macro element boundary second derivatives i_direct (e.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s). Broken virtual. | |
virtual void | d2macro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
Vector representation of the i_macro-th macro element boundary seocond derivatives i_direct (e.g. N/S/W/E in 2D) at continuous time level t. Broken virtual. | |
void | d2macro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
Vector representation of the i_macro-th macro element boundary second derivatives i_direct (e.g. N/S/W/E in 2D) at current time: f(s). | |
Private Member Functions | |
void | r_upper_body_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of upper body macro element zeta ![]() | |
void | r_upper_body_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of upper body macro element zeta ![]() | |
void | r_upper_body_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of upper body macro element zeta ![]() | |
void | r_upper_body_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of upper body macro element zeta ![]() | |
void | r_upper_fin_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of upper fin macro element zeta ![]() | |
void | r_upper_fin_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of upper fin macro element zeta ![]() | |
void | r_upper_fin_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of upper fin macro element zeta ![]() | |
void | r_upper_fin_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of upper fin macro element zeta ![]() | |
void | r_lower_body_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of lower body macro element zeta ![]() | |
void | r_lower_body_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of lower body macro element zeta ![]() | |
void | r_lower_body_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Southern boundary of lower body macro element zeta ![]() | |
void | r_lower_body_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of lower body macro element zeta ![]() | |
void | r_lower_fin_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of lower fin macro element zeta ![]() | |
void | r_lower_fin_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of lower fin macro element zeta ![]() | |
void | r_lower_fin_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of lower fin macro element zeta ![]() | |
void | r_lower_fin_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f) |
Boundary of lower fin macro element zeta ![]() | |
Private Attributes | |
double | Xi_nose |
"Nose" limit for the (1D) coordinates along the wall | |
double | Xi_tail |
"Tail" limit for the (1D) coordinates along the wall | |
double | X_fin |
X coordinate of fin tip. | |
double | Y_fin |
Y coordinate of fin tip. | |
double | X_mouth |
X coordinate of corner of mouth. | |
GeomObject * | Back_pt |
Pointer to the fish's back. | |
Additional Inherited Members | |
![]() | |
Vector< MacroElement * > | Macro_element_pt |
Vector of pointers to macro elements. | |
Fish shaped domain, represented by four MacroElements. Shape is parametrised by GeomObject that represents the fish's back.
Definition at line 42 of file fish_domain.h.
|
inline |
Constructor: Pass pointer to GeomObject that represents the (upper) curved boundary of the fish's body, and the start and end values of the Lagrangian coordinates along the GeomObject.
Definition at line 48 of file fish_domain.h.
References i, oomph::Domain::Macro_element_pt, X_fin, X_mouth, and Y_fin.
|
delete |
Broken copy constructor.
|
inlinevirtual |
Destructor for FishDomain: Empty; cleanup done in base class.
Definition at line 78 of file fish_domain.h.
|
virtual |
Vector representation of the i_macro-th macro element boundary i_direct (N/S/W/E) at the discrete time level t (t=0: present; t>0: previous): Note that the local coordinate zeta is a 1D Vector rather than a scalar – this is unavoidable because this function implements the pure virtual function in the Domain base class.
Vector representation of the imacro-th macro element boundary idirect (N/S/W/E) at time level t (t=0: present; t>0: previous): Note that the local coordinate zeta is a 1D Vector rather than a scalar – this is unavoidable because this function implements the pure virtual function in the Domain base class.
Implements oomph::Domain.
Definition at line 305 of file fish_domain.h.
References r_lower_body_E(), r_lower_body_N(), r_lower_body_S(), r_lower_body_W(), r_lower_fin_E(), r_lower_fin_N(), r_lower_fin_S(), r_lower_fin_W(), r_upper_body_E(), r_upper_body_N(), r_upper_body_S(), r_upper_body_W(), r_upper_fin_E(), r_upper_fin_N(), r_upper_fin_S(), r_upper_fin_W(), and t.
|
delete |
Broken assignment operator.
|
inlineprivate |
Boundary of lower body macro element zeta .
Definition at line 223 of file fish_domain.h.
References r_upper_body_E(), and t.
Referenced by macro_element_boundary().
|
inlineprivate |
Boundary of lower body macro element zeta .
Definition at line 184 of file fish_domain.h.
References r_upper_body_S(), and t.
Referenced by macro_element_boundary().
|
inlineprivate |
Southern boundary of lower body macro element zeta .
Definition at line 211 of file fish_domain.h.
References r_upper_body_N(), and t.
Referenced by macro_element_boundary().
|
inlineprivate |
Boundary of lower body macro element zeta .
Definition at line 197 of file fish_domain.h.
References r_upper_body_W(), and t.
Referenced by macro_element_boundary().
|
inlineprivate |
Boundary of lower fin macro element zeta .
Definition at line 277 of file fish_domain.h.
References r_upper_fin_E(), and t.
Referenced by macro_element_boundary().
|
inlineprivate |
Boundary of lower fin macro element zeta .
Definition at line 238 of file fish_domain.h.
References r_upper_fin_S(), and t.
Referenced by macro_element_boundary().
|
inlineprivate |
Boundary of lower fin macro element zeta .
Definition at line 265 of file fish_domain.h.
References r_upper_fin_N(), and t.
Referenced by macro_element_boundary().
|
inlineprivate |
Boundary of lower fin macro element zeta .
Definition at line 251 of file fish_domain.h.
References r_upper_fin_W(), and t.
Referenced by macro_element_boundary().
|
private |
Boundary of upper body macro element zeta .
Eastern edge of upper body macro element; .
Definition at line 557 of file fish_domain.h.
References Back_pt, oomph::GeomObject::position(), t, and Xi_tail.
Referenced by macro_element_boundary(), and r_lower_body_E().
|
private |
Boundary of upper body macro element zeta .
Northern edge of upper body macro element; .
Definition at line 541 of file fish_domain.h.
References Back_pt, oomph::GeomObject::position(), t, Xi_nose, and Xi_tail.
Referenced by macro_element_boundary(), and r_lower_body_S().
|
private |
Boundary of upper body macro element zeta .
Southern edge of upper body macro element; .
Definition at line 580 of file fish_domain.h.
References Back_pt, oomph::GeomObject::position(), t, X_mouth, and Xi_tail.
Referenced by macro_element_boundary(), and r_lower_body_N().
|
private |
Boundary of upper body macro element zeta .
Western edge of upper body macro element; .
Definition at line 599 of file fish_domain.h.
References Back_pt, oomph::GeomObject::position(), t, X_mouth, and Xi_nose.
Referenced by macro_element_boundary(), and r_lower_body_W().
|
private |
Boundary of upper fin macro element zeta .
Eastern edge of upper fin macro element; .
Definition at line 529 of file fish_domain.h.
Referenced by macro_element_boundary(), and r_lower_fin_E().
|
private |
Boundary of upper fin macro element zeta .
Northern edge of upper fin macro element; .
Definition at line 472 of file fish_domain.h.
References Back_pt, oomph::GeomObject::position(), t, X_fin, Xi_tail, and Y_fin.
Referenced by macro_element_boundary(), and r_lower_fin_S().
|
private |
Boundary of upper fin macro element zeta .
Southern edge of upper fin macro element; .
Definition at line 512 of file fish_domain.h.
References Back_pt, oomph::GeomObject::position(), t, and Xi_tail.
Referenced by macro_element_boundary(), and r_lower_fin_N().
|
private |
Boundary of upper fin macro element zeta .
Western edge of upper fin macro element; .
Definition at line 495 of file fish_domain.h.
References Back_pt, oomph::GeomObject::position(), t, and Xi_tail.
Referenced by macro_element_boundary(), and r_lower_fin_W().
|
inline |
|
inline |
|
inline |
Start coordinate on wall (near nose)
Definition at line 99 of file fish_domain.h.
References Xi_nose.
Referenced by oomph::AlgebraicFishMesh< ELEMENT >::update_node_update().
|
inline |
End coordinate on wall (near tail)
Definition at line 105 of file fish_domain.h.
References Xi_tail.
Referenced by oomph::AlgebraicFishMesh< ELEMENT >::update_node_update().
|
inline |
|
private |
Pointer to the fish's back.
Definition at line 140 of file fish_domain.h.
Referenced by r_upper_body_E(), r_upper_body_N(), r_upper_body_S(), r_upper_body_W(), r_upper_fin_N(), r_upper_fin_S(), and r_upper_fin_W().
|
private |
X coordinate of fin tip.
Definition at line 131 of file fish_domain.h.
Referenced by FishDomain(), r_upper_fin_E(), r_upper_fin_N(), and x_fin().
|
private |
X coordinate of corner of mouth.
Definition at line 137 of file fish_domain.h.
Referenced by FishDomain(), r_upper_body_S(), r_upper_body_W(), and x_mouth().
|
private |
"Nose" limit for the (1D) coordinates along the wall
Definition at line 125 of file fish_domain.h.
Referenced by r_upper_body_N(), r_upper_body_W(), and xi_nose().
|
private |
"Tail" limit for the (1D) coordinates along the wall
Definition at line 128 of file fish_domain.h.
Referenced by r_upper_body_E(), r_upper_body_N(), r_upper_body_S(), r_upper_fin_N(), r_upper_fin_S(), r_upper_fin_W(), and xi_tail().
|
private |
Y coordinate of fin tip.
Definition at line 134 of file fish_domain.h.
Referenced by FishDomain(), r_upper_fin_E(), r_upper_fin_N(), and y_fin().