Leaflet Class Reference
+ Inheritance diagram for Leaflet:

Public Member Functions

 Leaflet (const double &length, const double &d_x, const double &d_y, const double &x_0, const double &period, Time *time_pt)
 
virtual ~Leaflet ()
 Destructor – emtpy. More...
 
void position (const unsigned &t, const Vector< double > &xi, Vector< double > &r) const
 
void position (const Vector< double > &xi, Vector< double > &r) const
 Steady version: Get current shape. More...
 
unsigned ngeom_data () const
 Number of geometric Data in GeomObject: None. More...
 
double length ()
 Length of the leaflet. More...
 
doubled_x ()
 Amplitude of horizontal tip displacement. More...
 
double d_y ()
 Amplitude of vertical tip displacement. More...
 
double x_0 ()
 x-coordinate of leaflet origin More...
 
- Public Member Functions inherited from oomph::GeomObject
 GeomObject ()
 Default constructor. More...
 
 GeomObject (const unsigned &ndim)
 
 GeomObject (const unsigned &nlagrangian, const unsigned &ndim)
 
 GeomObject (const unsigned &nlagrangian, const unsigned &ndim, TimeStepper *time_stepper_pt)
 
 GeomObject (const GeomObject &dummy)=delete
 Broken copy constructor. More...
 
void operator= (const GeomObject &)=delete
 Broken assignment operator. More...
 
virtual ~GeomObject ()
 (Empty) destructor More...
 
unsigned nlagrangian () const
 Access function to # of Lagrangian coordinates. More...
 
unsigned ndim () const
 Access function to # of Eulerian coordinates. More...
 
void set_nlagrangian_and_ndim (const unsigned &n_lagrangian, const unsigned &n_dim)
 Set # of Lagrangian and Eulerian coordinates. More...
 
TimeStepper *& time_stepper_pt ()
 
TimeSteppertime_stepper_pt () const
 
virtual Datageom_data_pt (const unsigned &j)
 
virtual void position (const double &t, const Vector< double > &zeta, Vector< double > &r) const
 
virtual void dposition_dt (const Vector< double > &zeta, const unsigned &j, Vector< double > &drdt)
 
virtual void dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const
 
virtual void d2position (const Vector< double > &zeta, RankThreeTensor< double > &ddrdzeta) const
 
virtual void d2position (const Vector< double > &zeta, Vector< double > &r, DenseMatrix< double > &drdzeta, RankThreeTensor< double > &ddrdzeta) const
 
virtual void locate_zeta (const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false)
 
virtual void interpolated_zeta (const Vector< double > &s, Vector< double > &zeta) const
 

Private Attributes

double Length
 Length in terms of Lagrangian coordinates. More...
 
double D_x
 Horizontal displacement of tip. More...
 
double D_y
 Vertical displacement of tip. More...
 
double X_0
 Origin. More...
 
double T
 Period of the oscillations. More...
 
TimeTime_pt
 Pointer to the global time object. More...
 

Additional Inherited Members

- Protected Attributes inherited from oomph::GeomObject
unsigned NLagrangian
 Number of Lagrangian (intrinsic) coordinates. More...
 
unsigned Ndim
 Number of Eulerian coordinates. More...
 
TimeStepperGeom_object_time_stepper_pt
 

Detailed Description

GeomObject representing a vertical leaflet that performs bending and stretching oscillations.

Constructor & Destructor Documentation

◆ Leaflet()

Leaflet::Leaflet ( const double length,
const double d_x,
const double d_y,
const double x_0,
const double period,
Time time_pt 
)
inline

Constructor: Pass length (in Lagrangian coordinates), the amplitude of the horizontal and vertical deflection of the tip, the x-coordinate of the origin and the period of the oscillation. Passes the number of Lagrangian and Eulerian coordinates to the constructor of the GeomObject base class.

55  : GeomObject(1,2), Length(length), D_x(d_x), D_y(d_y), X_0(x_0),
56  T(period),Time_pt(time_pt) {}
double T
Period of the oscillations.
Definition: channel_with_leaflet.cc:111
double X_0
Origin.
Definition: channel_with_leaflet.cc:108
double D_x
Horizontal displacement of tip.
Definition: channel_with_leaflet.cc:102
double & d_x()
Amplitude of horizontal tip displacement.
Definition: channel_with_leaflet.cc:88
double Length
Length in terms of Lagrangian coordinates.
Definition: channel_with_leaflet.cc:99
double length()
Length of the leaflet.
Definition: channel_with_leaflet.cc:85
double d_y()
Amplitude of vertical tip displacement.
Definition: channel_with_leaflet.cc:91
Time * Time_pt
Pointer to the global time object.
Definition: channel_with_leaflet.cc:114
double x_0()
x-coordinate of leaflet origin
Definition: channel_with_leaflet.cc:94
double D_y
Vertical displacement of tip.
Definition: channel_with_leaflet.cc:105
GeomObject()
Default constructor.
Definition: geom_objects.h:104

◆ ~Leaflet()

virtual Leaflet::~Leaflet ( )
inlinevirtual

Destructor – emtpy.

60 {}

Member Function Documentation

◆ d_x()

double& Leaflet::d_x ( )
inline

Amplitude of horizontal tip displacement.

88 {return D_x;}

◆ d_y()

double Leaflet::d_y ( )
inline

Amplitude of vertical tip displacement.

91 {return D_y;}

◆ length()

double Leaflet::length ( )
inline

Length of the leaflet.

85 { return Length; }

References Global_Physical_Variables::Length.

◆ ngeom_data()

unsigned Leaflet::ngeom_data ( ) const
inlinevirtual

Number of geometric Data in GeomObject: None.

Reimplemented from oomph::GeomObject.

82 {return 0;}

◆ position() [1/2]

void Leaflet::position ( const unsigned t,
const Vector< double > &  xi,
Vector< double > &  r 
) const
inlinevirtual

Position vector, r, to the point identified by
its 1D Lagrangian coordinate, xi (passed as a 1D Vector) at discrete time level t (t=0: present; t>0: previous).

Reimplemented from oomph::GeomObject.

67  {
68  using namespace MathematicalConstants;
69 
70  //Position
71  r[0] = X_0 + D_x*xi[0]*xi[0]/Length/Length*sin(2.0*Pi*Time_pt->time(t)/T);
72  r[1] = xi[0]*(1.0+D_y/Length*0.5*(1.0-cos(4.0*Pi*Time_pt->time(t)/T)));
73  }
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
double & time()
Return the current value of the continuous time.
Definition: timesteppers.h:123
double Pi
Definition: two_d_biharmonic.cc:235
r
Definition: UniformPSDSelfTest.py:20
t
Definition: plotPSD.py:36

References cos(), Global_Physical_Variables::Length, BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, sin(), plotPSD::t, oomph::Time::time(), Flag_definition::Time_pt, and TanhSolnForPoisson::X_0.

◆ position() [2/2]

void Leaflet::position ( const Vector< double > &  xi,
Vector< double > &  r 
) const
inlinevirtual

Steady version: Get current shape.

Implements oomph::GeomObject.

77  {
78  position(0,xi,r);
79  }
void position(const unsigned &t, const Vector< double > &xi, Vector< double > &r) const
Definition: channel_with_leaflet.cc:65

References UniformPSDSelfTest::r.

◆ x_0()

double Leaflet::x_0 ( )
inline

x-coordinate of leaflet origin

94 {return X_0;}

References TanhSolnForPoisson::X_0.

Member Data Documentation

◆ D_x

double Leaflet::D_x
private

Horizontal displacement of tip.

◆ D_y

double Leaflet::D_y
private

Vertical displacement of tip.

◆ Length

double Leaflet::Length
private

Length in terms of Lagrangian coordinates.

◆ T

double Leaflet::T
private

Period of the oscillations.

◆ Time_pt

Time* Leaflet::Time_pt
private

Pointer to the global time object.

◆ X_0

double Leaflet::X_0
private

Origin.


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