oomph::SimpleCircle Class Reference

#include <circle.h>

+ Inheritance diagram for oomph::SimpleCircle:

Public Member Functions

 SimpleCircle (const double &x_c, const double &y_c, const double &r)
 Constructor: Pass x and y-coords of centre and radius. More...
 
void position (const Vector< double > &zeta, Vector< double > &r) const
 Position Vector at Lagrangian coordinate zeta. More...
 
void position (const unsigned &t, const Vector< double > &zeta, 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 X_c
 X-coordinate of centre. More...
 
double Y_c
 Y-coordinate of centre. More...
 
double R
 Radius. 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

Simple circle in 2D space.

\[ x = X_c + R \cos(\zeta) \]

\[ y = Y_c + R \sin(\zeta) \]

Constructor & Destructor Documentation

◆ SimpleCircle()

oomph::SimpleCircle::SimpleCircle ( const double x_c,
const double y_c,
const double r 
)
inline

Constructor: Pass x and y-coords of centre and radius.

48  : GeomObject(1,2), X_c(x_c), Y_c(y_c), R(r)
49  {}
GeomObject()
Default constructor.
Definition: geom_objects.h:104
double Y_c
Y-coordinate of centre.
Definition: circle.h:72
double X_c
X-coordinate of centre.
Definition: circle.h:69
double R
Radius.
Definition: circle.h:75
r
Definition: UniformPSDSelfTest.py:20

Member Function Documentation

◆ position() [1/2]

void oomph::SimpleCircle::position ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  r 
) const
inlinevirtual

Position Vector at Lagrangian coordinate zeta at time level t (t=0: present; t>0: previous level). Steady object, so we simply forward the call to the steady version.

Reimplemented from oomph::GeomObject.

64  {position(zeta,r);}
void position(const Vector< double > &zeta, Vector< double > &r) const
Position Vector at Lagrangian coordinate zeta.
Definition: circle.h:52
EIGEN_STRONG_INLINE const Eigen::CwiseBinaryOp< Eigen::internal::scalar_zeta_op< typename DerivedX::Scalar >, const DerivedX, const DerivedQ > zeta(const Eigen::ArrayBase< DerivedX > &x, const Eigen::ArrayBase< DerivedQ > &q)
Definition: SpecialFunctionsArrayAPI.h:152

References position(), UniformPSDSelfTest::r, and Eigen::zeta().

◆ position() [2/2]

void oomph::SimpleCircle::position ( const Vector< double > &  zeta,
Vector< double > &  r 
) const
inlinevirtual

Position Vector at Lagrangian coordinate zeta.

Implements oomph::GeomObject.

53  {
54  // Position vector
55  r[0] = X_c+R*cos(zeta[0]);
56  r[1] = Y_c+R*sin(zeta[0]);
57  }
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137

References cos(), UniformPSDSelfTest::r, R, sin(), X_c, Y_c, and Eigen::zeta().

Referenced by position().

Member Data Documentation

◆ R

double oomph::SimpleCircle::R
protected

Radius.

Referenced by position().

◆ X_c

double oomph::SimpleCircle::X_c
protected

X-coordinate of centre.

Referenced by position().

◆ Y_c

double oomph::SimpleCircle::Y_c
protected

Y-coordinate of centre.

Referenced by position().


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