Public Member Functions | Private Member Functions | Private Attributes | List of all members
oomph::CylinderWithFlagDomain Class Reference

Domain for cylinder with flag as in Turek benchmark. More...

#include <cylinder_with_flag_domain.h>

+ Inheritance diagram for oomph::CylinderWithFlagDomain:

Public Member Functions

 CylinderWithFlagDomain (Circle *cylinder_pt, GeomObject *top_flag_pt, GeomObject *bottom_flag_pt, GeomObject *tip_flag_pt, const double &length, const double &height, const double &flag_length, const double &flag_height, const double &centre_x, const double &centre_y, const double &a)
 Constructor. Pass the pointers to the GeomObjects that parametrise the cylinder, the three edges of the flag, the length and height of the domain, the length and height of the flag, the coordinates of the centre of the cylinder and its radius. More...
 
 ~CylinderWithFlagDomain ()
 Destructor: Emtpy because clean up happens in base class as a service to the user! More...
 
void macro_element_boundary (const unsigned &time, const unsigned &m, const unsigned &direction, const Vector< double > &s, Vector< double > &f)
 Parametrisation of macro element boundaries: f(s) is the position vector to macro-element m's boundary in the specified direction [N/S/E/W] at the specfied discrete time level (time=0: present; time>0: previous) More...
 
Circlecylinder_pt ()
 Access fct to GeomObject (of type Circle) that represents the cylinder. More...
 
GeomObject *& bottom_flag_pt ()
 Access fct to GeomObjects for top, bottom and tip. More...
 
GeomObject *& top_flag_pt ()
 
GeomObject *& tip_flag_pt ()
 
- Public Member Functions inherited from oomph::Domain
 Domain ()
 Constructor. More...
 
 Domain (const Domain &)=delete
 Broken copy constructor. More...
 
void operator= (const Domain &)=delete
 Broken assignment operator. More...
 
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. More...
 
MacroElementmacro_element_pt (const unsigned &i)
 Access to i-th macro element. More...
 
unsigned nmacro_element ()
 Number of macro elements in domain. More...
 
void output (const std::string &filename, const unsigned &nplot)
 Output macro elements. More...
 
void output (std::ostream &outfile, const unsigned &nplot)
 Output macro elements. More...
 
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. More...
 
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). More...
 
void output_macro_element_boundaries (const std::string &filename, const unsigned &nplot)
 Output all macro element boundaries as tecplot zones. More...
 
void output_macro_element_boundaries (std::ostream &outfile, const unsigned &nplot)
 Output all macro element boundaries as tecplot zones. More...
 
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. More...
 
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. More...
 
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). More...
 
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. More...
 
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. More...
 
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). More...
 

Private Member Functions

void linear_interpolate (const Vector< double > &left, const Vector< double > &right, const double &s, Vector< double > &f)
 Helper function to interpolate linearly between the "right" and "left" points; $ s \in [-1,1] $. More...
 

Private Attributes

Vector< double > p1
 
Vector< double > p2
 
Vector< double > p3
 
Vector< double > p4
 
Vector< double > p5
 
Vector< double > p6
 
Vector< double > p7
 
Vector< double > p8
 
Vector< double > p9
 
Vector< double > p10
 
Vector< double > p11
 
Vector< double > p12
 
Vector< double > p13
 
Vector< double > p14
 
Vector< double > p15
 
Vector< double > p16
 
Vector< double > p17
 
Vector< double > p18
 
Vector< double > p19
 
Vector< double > p20
 
Vector< double > p21
 
Vector< double > p22
 
Vector< double > p23
 
Vector< double > p24
 
Vector< double > p25
 
Vector< double > p26
 
Vector< double > p27
 
Vector< double > p28
 
Vector< double > p29
 
Vector< double > p30
 
Vector< double > p31
 
Vector< double > p32
 
Vector< double > p33
 
Vector< double > p34
 
Vector< double > p35
 
Vector< double > p36
 
Vector< double > p37
 
Vector< double > p38
 
Vector< double > p39
 
Vector< double > p40
 
Vector< double > p41
 
Vector< double > p42
 
Vector< double > p43
 
Vector< double > p44
 
Vector< double > p45
 
Vector< double > p46
 
Vector< double > p47
 
Vector< double > p48
 
Vector< double > p49
 
Vector< double > p50
 
CircleCylinder_pt
 Pointer to geometric object that represents the central cylinder. More...
 
GeomObjectTop_flag_pt
 Pointer to geometric object that represents the top of the flag. More...
 
GeomObjectBottom_flag_pt
 Pointer to geometric object that represents the bottom of the flag. More...
 
GeomObjectTip_flag_pt
 Pointer to geometric object that represents the tip of the flag. More...
 
double Lx
 
double Ly
 
double Centre_x
 
double Centre_y
 
double A
 

Additional Inherited Members

- Protected Attributes inherited from oomph::Domain
Vector< MacroElement * > Macro_element_pt
 Vector of pointers to macro elements. More...
 

Detailed Description

Domain for cylinder with flag as in Turek benchmark.

Definition at line 41 of file cylinder_with_flag_domain.h.

Constructor & Destructor Documentation

◆ CylinderWithFlagDomain()

oomph::CylinderWithFlagDomain::CylinderWithFlagDomain ( Circle cylinder_pt,
GeomObject top_flag_pt,
GeomObject bottom_flag_pt,
GeomObject tip_flag_pt,
const double &  length,
const double &  height,
const double &  flag_length,
const double &  flag_height,
const double &  centre_x,
const double &  centre_y,
const double &  a 
)

Constructor. Pass the pointers to the GeomObjects that parametrise the cylinder, the three edges of the flag, the length and height of the domain, the length and height of the flag, the coordinates of the centre of the cylinder and its radius.

Constructor, Pass the pointers to the GeomObjects that parametrise the cylinder, the three edges of the flag, the length and height of the domain, the length and height of the flag, the coordinates of the centre of the cylinder and its radius.

Definition at line 37 of file cylinder_with_flag_domain.cc.

References A, Centre_x, Centre_y, i, oomph::Domain::Macro_element_pt, p1, p10, p11, p12, p13, p14, p15, p16, p18, p2, p21, p22, p23, p24, p25, p27, p28, p29, p3, p30, p31, p33, p35, p36, p37, p38, p39, p4, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p5, p50, p6, p7, p8, and p9.

◆ ~CylinderWithFlagDomain()

oomph::CylinderWithFlagDomain::~CylinderWithFlagDomain ( )
inline

Destructor: Emtpy because clean up happens in base class as a service to the user!

Definition at line 63 of file cylinder_with_flag_domain.h.

Member Function Documentation

◆ bottom_flag_pt()

GeomObject *& oomph::CylinderWithFlagDomain::bottom_flag_pt ( )
inline

Access fct to GeomObjects for top, bottom and tip.

Definition at line 84 of file cylinder_with_flag_domain.h.

References Bottom_flag_pt.

Referenced by oomph::AlgebraicCylinderWithFlagMesh< ELEMENT >::set_bottom_flag_pt().

◆ cylinder_pt()

Circle * oomph::CylinderWithFlagDomain::cylinder_pt ( )
inline

Access fct to GeomObject (of type Circle) that represents the cylinder.

Definition at line 78 of file cylinder_with_flag_domain.h.

References Cylinder_pt.

◆ linear_interpolate()

void oomph::CylinderWithFlagDomain::linear_interpolate ( const Vector< double > &  left,
const Vector< double > &  right,
const double &  s,
Vector< double > &  f 
)
inlineprivate

Helper function to interpolate linearly between the "right" and "left" points; $ s \in [-1,1] $.

Definition at line 100 of file cylinder_with_flag_domain.h.

References i, and s.

Referenced by macro_element_boundary().

◆ macro_element_boundary()

void oomph::CylinderWithFlagDomain::macro_element_boundary ( const unsigned &  time,
const unsigned &  m,
const unsigned &  direction,
const Vector< double > &  s,
Vector< double > &  f 
)
virtual

Parametrisation of macro element boundaries: f(s) is the position vector to macro-element m's boundary in the specified direction [N/S/E/W] at the specfied discrete time level (time=0: present; time>0: previous)

Implements oomph::Domain.

Definition at line 227 of file cylinder_with_flag_domain.cc.

References A, Bottom_flag_pt, Cylinder_pt, oomph::QuadTreeNames::E, linear_interpolate(), Lx, Ly, oomph::QuadTreeNames::N, p1, p10, p11, p12, p13, p14, p15, p16, p18, p2, p21, p22, p23, p24, p25, p27, p28, p29, p3, p30, p31, p33, p35, p36, p37, p38, p39, p4, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p5, p50, p6, p7, p8, p9, oomph::Circle::position(), oomph::GeomObject::position(), s, oomph::QuadTreeNames::S, Tip_flag_pt, Top_flag_pt, and oomph::QuadTreeNames::W.

◆ tip_flag_pt()

GeomObject *& oomph::CylinderWithFlagDomain::tip_flag_pt ( )
inline

◆ top_flag_pt()

GeomObject *& oomph::CylinderWithFlagDomain::top_flag_pt ( )
inline

Member Data Documentation

◆ A

double oomph::CylinderWithFlagDomain::A
private

Definition at line 189 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ Bottom_flag_pt

GeomObject* oomph::CylinderWithFlagDomain::Bottom_flag_pt
private

Pointer to geometric object that represents the bottom of the flag.

Definition at line 171 of file cylinder_with_flag_domain.h.

Referenced by bottom_flag_pt(), and macro_element_boundary().

◆ Centre_x

double oomph::CylinderWithFlagDomain::Centre_x
private

Definition at line 183 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain().

◆ Centre_y

double oomph::CylinderWithFlagDomain::Centre_y
private

Definition at line 186 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain().

◆ Cylinder_pt

Circle* oomph::CylinderWithFlagDomain::Cylinder_pt
private

Pointer to geometric object that represents the central cylinder.

Definition at line 165 of file cylinder_with_flag_domain.h.

Referenced by cylinder_pt(), and macro_element_boundary().

◆ Lx

double oomph::CylinderWithFlagDomain::Lx
private

Definition at line 177 of file cylinder_with_flag_domain.h.

Referenced by macro_element_boundary().

◆ Ly

double oomph::CylinderWithFlagDomain::Ly
private

Definition at line 180 of file cylinder_with_flag_domain.h.

Referenced by macro_element_boundary().

◆ p1

Vector<double> oomph::CylinderWithFlagDomain::p1
private

Definition at line 112 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p10

Vector<double> oomph::CylinderWithFlagDomain::p10
private

Definition at line 121 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p11

Vector<double> oomph::CylinderWithFlagDomain::p11
private

Definition at line 122 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p12

Vector<double> oomph::CylinderWithFlagDomain::p12
private

Definition at line 123 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p13

Vector<double> oomph::CylinderWithFlagDomain::p13
private

Definition at line 124 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p14

Vector<double> oomph::CylinderWithFlagDomain::p14
private

Definition at line 125 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p15

Vector<double> oomph::CylinderWithFlagDomain::p15
private

Definition at line 126 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p16

Vector<double> oomph::CylinderWithFlagDomain::p16
private

Definition at line 127 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p17

Vector<double> oomph::CylinderWithFlagDomain::p17
private

Definition at line 128 of file cylinder_with_flag_domain.h.

◆ p18

Vector<double> oomph::CylinderWithFlagDomain::p18
private

Definition at line 129 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p19

Vector<double> oomph::CylinderWithFlagDomain::p19
private

Definition at line 130 of file cylinder_with_flag_domain.h.

◆ p2

Vector<double> oomph::CylinderWithFlagDomain::p2
private

Definition at line 113 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p20

Vector<double> oomph::CylinderWithFlagDomain::p20
private

Definition at line 131 of file cylinder_with_flag_domain.h.

◆ p21

Vector<double> oomph::CylinderWithFlagDomain::p21
private

Definition at line 132 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p22

Vector<double> oomph::CylinderWithFlagDomain::p22
private

Definition at line 133 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p23

Vector<double> oomph::CylinderWithFlagDomain::p23
private

Definition at line 134 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p24

Vector<double> oomph::CylinderWithFlagDomain::p24
private

Definition at line 135 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p25

Vector<double> oomph::CylinderWithFlagDomain::p25
private

Definition at line 136 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p26

Vector<double> oomph::CylinderWithFlagDomain::p26
private

Definition at line 137 of file cylinder_with_flag_domain.h.

◆ p27

Vector<double> oomph::CylinderWithFlagDomain::p27
private

Definition at line 138 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p28

Vector<double> oomph::CylinderWithFlagDomain::p28
private

Definition at line 139 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p29

Vector<double> oomph::CylinderWithFlagDomain::p29
private

Definition at line 140 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p3

Vector<double> oomph::CylinderWithFlagDomain::p3
private

Definition at line 114 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p30

Vector<double> oomph::CylinderWithFlagDomain::p30
private

Definition at line 141 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p31

Vector<double> oomph::CylinderWithFlagDomain::p31
private

Definition at line 142 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p32

Vector<double> oomph::CylinderWithFlagDomain::p32
private

Definition at line 143 of file cylinder_with_flag_domain.h.

◆ p33

Vector<double> oomph::CylinderWithFlagDomain::p33
private

Definition at line 144 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p34

Vector<double> oomph::CylinderWithFlagDomain::p34
private

Definition at line 145 of file cylinder_with_flag_domain.h.

◆ p35

Vector<double> oomph::CylinderWithFlagDomain::p35
private

Definition at line 146 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p36

Vector<double> oomph::CylinderWithFlagDomain::p36
private

Definition at line 147 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p37

Vector<double> oomph::CylinderWithFlagDomain::p37
private

Definition at line 148 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p38

Vector<double> oomph::CylinderWithFlagDomain::p38
private

Definition at line 149 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p39

Vector<double> oomph::CylinderWithFlagDomain::p39
private

Definition at line 150 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p4

Vector<double> oomph::CylinderWithFlagDomain::p4
private

Definition at line 115 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p40

Vector<double> oomph::CylinderWithFlagDomain::p40
private

Definition at line 151 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p41

Vector<double> oomph::CylinderWithFlagDomain::p41
private

Definition at line 152 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p42

Vector<double> oomph::CylinderWithFlagDomain::p42
private

Definition at line 153 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p43

Vector<double> oomph::CylinderWithFlagDomain::p43
private

Definition at line 154 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p44

Vector<double> oomph::CylinderWithFlagDomain::p44
private

Definition at line 155 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p45

Vector<double> oomph::CylinderWithFlagDomain::p45
private

Definition at line 156 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p46

Vector<double> oomph::CylinderWithFlagDomain::p46
private

Definition at line 157 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p47

Vector<double> oomph::CylinderWithFlagDomain::p47
private

Definition at line 158 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p48

Vector<double> oomph::CylinderWithFlagDomain::p48
private

Definition at line 159 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p49

Vector<double> oomph::CylinderWithFlagDomain::p49
private

Definition at line 160 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p5

Vector<double> oomph::CylinderWithFlagDomain::p5
private

Definition at line 116 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p50

Vector<double> oomph::CylinderWithFlagDomain::p50
private

Definition at line 161 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p6

Vector<double> oomph::CylinderWithFlagDomain::p6
private

Definition at line 117 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p7

Vector<double> oomph::CylinderWithFlagDomain::p7
private

Definition at line 118 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p8

Vector<double> oomph::CylinderWithFlagDomain::p8
private

Definition at line 119 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ p9

Vector<double> oomph::CylinderWithFlagDomain::p9
private

Definition at line 120 of file cylinder_with_flag_domain.h.

Referenced by CylinderWithFlagDomain(), and macro_element_boundary().

◆ Tip_flag_pt

GeomObject* oomph::CylinderWithFlagDomain::Tip_flag_pt
private

Pointer to geometric object that represents the tip of the flag.

Definition at line 174 of file cylinder_with_flag_domain.h.

Referenced by macro_element_boundary(), and tip_flag_pt().

◆ Top_flag_pt

GeomObject* oomph::CylinderWithFlagDomain::Top_flag_pt
private

Pointer to geometric object that represents the top of the flag.

Definition at line 168 of file cylinder_with_flag_domain.h.

Referenced by macro_element_boundary(), and top_flag_pt().


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