MyEllipse Class Reference
+ Inheritance diagram for MyEllipse:

Public Member Functions

 MyEllipse (const double &a, const double &b, const double &a_hat, const double &b_hat, const double &period, Time *time_pt)
 
virtual ~MyEllipse ()
 Destructor: Empty. More...
 
void position (const Vector< double > &xi, Vector< double > &r) const
 
void position (const unsigned &t, const Vector< double > &xi, Vector< double > &r) const
 
 MyEllipse (const double &a, const double &a_hat, const double &period, Time *time_pt)
 
virtual ~MyEllipse ()
 Destructor: Empty. More...
 
void position (const Vector< double > &xi, Vector< double > &r) const
 
void position (const unsigned &t, const Vector< double > &xi, Vector< double > &r) const
 
 MyEllipse (const double &a, const double &b)
 Constructor: Pass half axes. More...
 
virtual ~MyEllipse ()
 Destructor: Empty. More...
 
void position (const Vector< double > &xi, Vector< double > &r) const
 
void position (const unsigned &t, const Vector< double > &xi, Vector< double > &r) const
 
 MyEllipse (const double &a, const double &b, const double &a_hat, const double &b_hat, const double &period, Time *time_pt)
 
virtual ~MyEllipse ()
 Destructor: Empty. More...
 
void position (const Vector< double > &xi, Vector< double > &r) const
 
void position (const unsigned &t, const Vector< double > &xi, Vector< double > &r) const
 
 MyEllipse (const double &a, const double &b, const double &a_hat, const double &b_hat, const double &period, Time *time_pt)
 
virtual ~MyEllipse ()
 Destructor: Empty. More...
 
void position (const Vector< double > &xi, Vector< double > &r) const
 
void position (const unsigned &t, const Vector< double > &xi, Vector< double > &r) const
 
- 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 unsigned ngeom_data () 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
 

Protected Attributes

double A
 x-half axis More...
 
double B
 y-half axis More...
 
double A_hat
 Amplitude of variation in x-half axis. More...
 
double B_hat
 Amplitude of variation in y-half axis. More...
 
double T
 Period of oscillation. More...
 
TimeTime_pt
 Pointer to time object. More...
 
- 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

Oscillating ellipse

\[ x = (a + \widehat{a} \sin(2\Pi t/T)) \cos(\xi) \]

\[ y = (b + \widehat{b} \sin(2\Pi t/T)) \sin(\xi) \]

Oscillating ellipse

\[ x = (A + \widehat{A} \cos(2\pi t/T)) \cos(\xi) \]

\[ y = \frac{\sin(\xi)}{A + \widehat{A} \cos(2\pi t/T)} \]

Note that cross-sectional area is conserved.

Ellipse

\[ x = a \cos(\xi) \]

\[ y = b \sin(\xi) \]

Constructor & Destructor Documentation

◆ MyEllipse() [1/5]

MyEllipse::MyEllipse ( const double a,
const double b,
const double a_hat,
const double b_hat,
const double period,
Time time_pt 
)
inline

Constructor: Pass half axes, amplitudes of their variation, period of oscillation and pointer to time object.

59  :
60  GeomObject(1,2), A(a), B(b), A_hat(a_hat), B_hat(b_hat),
61  T(period), Time_pt(time_pt) {}
Scalar * b
Definition: benchVecAdd.cpp:17
double B_hat
Amplitude of variation in y-half axis.
Definition: two_d_unsteady_heat_2adapt_load_balance.cc:109
double A_hat
Amplitude of variation in x-half axis.
Definition: two_d_unsteady_heat_2adapt_load_balance.cc:106
double B
y-half axis
Definition: two_d_unsteady_heat_2adapt_load_balance.cc:103
double A
x-half axis
Definition: two_d_unsteady_heat_2adapt_load_balance.cc:100
double T
Period of oscillation.
Definition: two_d_unsteady_heat_2adapt_load_balance.cc:112
Time * Time_pt
Pointer to time object.
Definition: two_d_unsteady_heat_2adapt_load_balance.cc:115
GeomObject()
Default constructor.
Definition: geom_objects.h:104
const Scalar * a
Definition: level2_cplx_impl.h:32

◆ ~MyEllipse() [1/5]

virtual MyEllipse::~MyEllipse ( )
inlinevirtual

Destructor: Empty.

64 {}

◆ MyEllipse() [2/5]

MyEllipse::MyEllipse ( const double a,
const double a_hat,
const double period,
Time time_pt 
)
inline

Constructor: Pass initial x-half axis, amplitude of x-variation, period of oscillation and pointer to time object.

55  :
56  GeomObject(1,2), A(a), A_hat(a_hat), T(period), Time_pt(time_pt) {}

◆ ~MyEllipse() [2/5]

virtual MyEllipse::~MyEllipse ( )
inlinevirtual

Destructor: Empty.

59 {}

◆ MyEllipse() [3/5]

MyEllipse::MyEllipse ( const double a,
const double b 
)
inline

Constructor: Pass half axes.

57  :
58  GeomObject(1,2), A(a), B(b) {}

◆ ~MyEllipse() [3/5]

virtual MyEllipse::~MyEllipse ( )
inlinevirtual

Destructor: Empty.

61 {}

◆ MyEllipse() [4/5]

MyEllipse::MyEllipse ( const double a,
const double b,
const double a_hat,
const double b_hat,
const double period,
Time time_pt 
)
inline

Constructor: Pass half axes, amplitudes of their variation, period of oscillation and pointer to time object.

58  :
59  GeomObject(1,2), A(a), B(b), A_hat(a_hat), B_hat(b_hat),
60  T(period), Time_pt(time_pt) {}

◆ ~MyEllipse() [4/5]

virtual MyEllipse::~MyEllipse ( )
inlinevirtual

Destructor: Empty.

63 {}

◆ MyEllipse() [5/5]

MyEllipse::MyEllipse ( const double a,
const double b,
const double a_hat,
const double b_hat,
const double period,
Time time_pt 
)
inline

Constructor: Pass half axes, amplitudes of their variation, period of oscillation and pointer to time object.

58  :
59  GeomObject(1,2), A(a), B(b), A_hat(a_hat), B_hat(b_hat),
60  T(period), Time_pt(time_pt) {}

◆ ~MyEllipse() [5/5]

virtual MyEllipse::~MyEllipse ( )
inlinevirtual

Destructor: Empty.

63 {}

Member Function Documentation

◆ position() [1/10]

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

Parametrised position on object: r(xi). Evaluated at previous time level. t=0: current time; t>0: previous time level.

Reimplemented from oomph::GeomObject.

86  {
87  // Get current time:
88  double time=Time_pt->time(t);
89 
90  // Position vector
91  r[0] = (A+A_hat*sin(2.0*MathematicalConstants::Pi*time/T))*cos(xi[0]);
92  r[1] = (B+B_hat*sin(2.0*MathematicalConstants::Pi*time/T))*sin(xi[0]);
93 
94  } // end of position(...)
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Definition: matrices.h:74
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 Global_Physical_Variables::A_hat, cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, sin(), plotPSD::t, oomph::Time::time(), and Flag_definition::Time_pt.

◆ position() [2/10]

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

Parametrised position on object: r(xi). Evaluated at previous time level. t=0: current time; t>0: previous time level.

Reimplemented from oomph::GeomObject.

79  {
80  // Get current time:
81  double time=Time_pt->time(t);
82 
83  // Position vector
84  double axis=A+A_hat*cos(2.0*MathematicalConstants::Pi*time/T);
85  r[0] = axis*cos(xi[0]);
86  r[1] = (1.0/axis)*sin(xi[0]);
87  }

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

◆ position() [3/10]

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

Parametrised position on object: r(xi). Evaluated at previous time level. t=0: current time; t>0: previous time level.

Reimplemented from oomph::GeomObject.

80  {
81  // Call steady version
82  position(xi,r);
83  } // end of position(...)
void position(const Vector< double > &xi, Vector< double > &r) const
Definition: two_d_unsteady_heat_2adapt_load_balance.cc:68

References UniformPSDSelfTest::r.

◆ position() [4/10]

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

Parametrised position on object: r(xi). Evaluated at previous time level. t=0: current time; t>0: previous time level.

Reimplemented from oomph::GeomObject.

85  {
86  // Get current time:
87  double time=Time_pt->time(t);
88 
89  // Position vector
90  r[0] = (A+A_hat*sin(2.0*MathematicalConstants::Pi*time/T))*cos(xi[0]);
91  r[1] = (B+B_hat*sin(2.0*MathematicalConstants::Pi*time/T))*sin(xi[0]);
92 
93  } // end of position(...)

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

◆ position() [5/10]

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

Parametrised position on object: r(xi). Evaluated at previous time level. t=0: current time; t>0: previous time level.

Reimplemented from oomph::GeomObject.

85  {
86  // Get current time:
87  double time=Time_pt->time(t);
88 
89  // Position vector
90  r[0] = (A+A_hat*sin(2.0*MathematicalConstants::Pi*time/T))*cos(xi[0]);
91  r[1] = (B+B_hat*sin(2.0*MathematicalConstants::Pi*time/T))*sin(xi[0]);
92 
93  } // end of position(...)

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

◆ position() [6/10]

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

Current position vector to material point at Lagrangian coordinate xi

Implements oomph::GeomObject.

69  {
70  // Get current time:
71  double time=Time_pt->time();
72 
73  // Position vector
74  r[0] = (A+A_hat*sin(2.0*MathematicalConstants::Pi*time/T))*cos(xi[0]);
75  r[1] = (B+B_hat*sin(2.0*MathematicalConstants::Pi*time/T))*sin(xi[0]);
76 
77  } // end of position(...)

References Global_Physical_Variables::A_hat, cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, sin(), oomph::Time::time(), and Flag_definition::Time_pt.

◆ position() [7/10]

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

Current position vector to material point at Lagrangian coordinate xi

Implements oomph::GeomObject.

64  {
65  // Get current time:
66  double time=Time_pt->time();
67 
68  // Position vector
69  double axis=A+A_hat*cos(2.0*MathematicalConstants::Pi*time/T);
70  r[0] = axis*cos(xi[0]);
71  r[1] = (1.0/axis)*sin(xi[0]);
72  }

References Global_Physical_Variables::A_hat, cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, sin(), oomph::Time::time(), and Flag_definition::Time_pt.

◆ position() [8/10]

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

Current position vector to material point at Lagrangian coordinate xi

Implements oomph::GeomObject.

66  {
67  // Position vector
68  r[0] = A*cos(xi[0]);
69  r[1] = B*sin(xi[0]);
70 
71  } // end of position(...)

References cos(), UniformPSDSelfTest::r, and sin().

◆ position() [9/10]

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

Current position vector to material point at Lagrangian coordinate xi

Implements oomph::GeomObject.

68  {
69  // Get current time:
70  double time=Time_pt->time();
71 
72  // Position vector
73  r[0] = (A+A_hat*sin(2.0*MathematicalConstants::Pi*time/T))*cos(xi[0]);
74  r[1] = (B+B_hat*sin(2.0*MathematicalConstants::Pi*time/T))*sin(xi[0]);
75 
76  } // end of position(...)

References Global_Physical_Variables::A_hat, cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, sin(), oomph::Time::time(), and Flag_definition::Time_pt.

◆ position() [10/10]

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

Current position vector to material point at Lagrangian coordinate xi

Implements oomph::GeomObject.

68  {
69  // Get current time:
70  double time=Time_pt->time();
71 
72  // Position vector
73  r[0] = (A+A_hat*sin(2.0*MathematicalConstants::Pi*time/T))*cos(xi[0]);
74  r[1] = (B+B_hat*sin(2.0*MathematicalConstants::Pi*time/T))*sin(xi[0]);
75 
76  } // end of position(...)

References Global_Physical_Variables::A_hat, cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, sin(), oomph::Time::time(), and Flag_definition::Time_pt.

Member Data Documentation

◆ A

double MyEllipse::A
protected

x-half axis

◆ A_hat

double MyEllipse::A_hat
protected

Amplitude of variation in x-half axis.

◆ B

double MyEllipse::B
protected

y-half axis

◆ B_hat

double MyEllipse::B_hat
protected

Amplitude of variation in y-half axis.

◆ T

double MyEllipse::T
protected

Period of oscillation.

◆ Time_pt

Time * MyEllipse::Time_pt
protected

Pointer to time object.


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