Public Member Functions | Protected Attributes | List of all members
oomph::PseudoBucklingRing Class Reference

Pseudo buckling ring: Circular ring deformed by the N-th buckling mode of a thin-wall elastic ring.

\[ x = R_0 \cos(\zeta) + \epsilon \left( \cos(N \zeta) \cos(\zeta) - A \sin(N \zeta) \sin(\zeta) \right) sin(2 \pi t/T) \]

\[ y = R_0 \sin(\zeta) + \epsilon \left( \cos(N \zeta) \sin(\zeta) + A \sin(N \zeta) \cos(\zeta) \right) sin(2 \pi t/T) \]

where A is the ratio of the aziumuthal to the radial buckling amplitude (A=-1/N for statically buckling rings) and epsilon is the buckling amplitude. More...

#include <pseudo_buckling_ring.h>

+ Inheritance diagram for oomph::PseudoBucklingRing:

Public Member Functions

 PseudoBucklingRing ()
 Default constructor (empty and broken) More...
 
 PseudoBucklingRing (const Vector< Data * > &geom_data_pt, TimeStepper *time_stepper_pt)
 Constructor: 1 Lagrangian coordinate, 2 Eulerian coords. Pass buckling amplitude, ratio of of buckling amplitudes, buckling wavenumber (as a double), undeformed ring radius (all as Data) and pointer to global timestepper. More...
 
 PseudoBucklingRing (const double &eps_buckl, const double &ampl_ratio, const unsigned n_buckl, const double &r_0, const double &T, TimeStepper *time_stepper_pt)
 Constructor: 1 Lagrangian coordinate, 2 Eulerian coords. Pass buckling amplitude, ratio of of buckling amplitudes, buckling wavenumber, undeformed ring radius, period of osc and pointer to global timestepper. All geometric data is pinned by default. More...
 
 PseudoBucklingRing (const double &eps_buckl, const double &HoR, const unsigned &n_buckl, const unsigned &imode, TimeStepper *time_stepper_pt)
 Constructor: 1 Lagrangian coordinate, 2 Eulerian coords. Pass buckling amplitude, h/R, buckling wavenumbe and pointer to global timestepper. Other parameters get set up to represent oscillating ring with mode imode (1 or 2). All geometric data is pinned by default. More...
 
 PseudoBucklingRing (const PseudoBucklingRing &node)
 Broken copy constructor. More...
 
void operator= (const PseudoBucklingRing &)
 Broken assignment operator. More...
 
 ~PseudoBucklingRing ()
 Destructor: Clean up if necessary. More...
 
double eps_buckl ()
 Access function for buckling amplitude. More...
 
double ampl_ratio ()
 Access function for amplitude ratio. More...
 
double r_0 ()
 Access function for undeformed radius. More...
 
double T ()
 Access function for period of oscillation. More...
 
double n_buckl_float ()
 Access function for buckling wavenumber (as float) More...
 
void set_eps_buckl (const double &eps_buckl)
 Set buckling amplitude. More...
 
void set_ampl_ratio (const double &ampl_ratio)
 Set amplitude ratio between radial and azimuthal buckling displacements. More...
 
void set_n_buckl (const unsigned &n_buckl)
 Set buckling wavenumber. More...
 
void set_R_0 (const double &r_0)
 Set undeformed radius of ring. More...
 
void set_T (const double &T)
 Set period of oscillation. More...
 
void position (const Vector< double > &zeta, Vector< double > &r) const
 Position Vector at Lagrangian coordinate zeta at present time. More...
 
void veloc (const Vector< double > &zeta, Vector< double > &veloc)
 Parametrised velocity on object at current time: veloc = d r(zeta)/dt. More...
 
void accel (const Vector< double > &zeta, Vector< double > &accel)
 Parametrised acceleration on object at current time: accel = d^2 r(zeta)/dt^2. More...
 
void position (const unsigned &t, const Vector< double > &zeta, Vector< double > &r) const
 Position Vector at Lagrangian coordinate zeta at discrete previous time (t=0: present time; t>0: previous time) More...
 
void dposition_dt (const Vector< double > &zeta, const unsigned &j, Vector< double > &drdt)
 j-th time-derivative on object at current time: $ \frac{d^{j} r(\zeta)}{dt^j} $. More...
 
unsigned ngeom_data () const
 How many items of Data does the shape of the object depend on? More...
 
Datageom_data_pt (const unsigned &j)
 Return pointer to the j-th Data item that the object's shape depends on. More...
 
- Public Member Functions inherited from oomph::GeomObject
 GeomObject ()
 Default constructor. More...
 
 GeomObject (const unsigned &ndim)
 Constructor: Pass dimension of geometric object (# of Eulerian coords = # of Lagrangian coords; no time history available/needed) More...
 
 GeomObject (const unsigned &nlagrangian, const unsigned &ndim)
 Constructor: pass # of Eulerian and Lagrangian coordinates. No time history available/needed. More...
 
 GeomObject (const unsigned &nlagrangian, const unsigned &ndim, TimeStepper *time_stepper_pt)
 Constructor: pass # of Eulerian and Lagrangian coordinates and pointer to time-stepper which is used to handle the position at previous timesteps and allows the evaluation of veloc/acceleration etc. in cases where the GeomData varies with time. More...
 
 GeomObject (const GeomObject &dummy)
 Broken copy constructor. More...
 
void operator= (const GeomObject &)
 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 ()
 Access function for pointer to time stepper: Null if object is not time-dependent. More...
 
TimeSteppertime_stepper_pt () const
 Access function for pointer to time stepper: Null if object is not time-dependent. Const version. More...
 
virtual void dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const
 Derivative of position Vector w.r.t. to coordinates: $ \frac{dR_i}{d \zeta_\alpha}$ = drdzeta(alpha,i). Evaluated at current time. More...
 
virtual void d2position (const Vector< double > &zeta, RankThreeTensor< double > &ddrdzeta) const
 2nd derivative of position Vector w.r.t. to coordinates: $ \frac{d^2R_i}{d \zeta_\alpha d \zeta_\beta}$ = ddrdzeta(alpha,beta,i). Evaluated at current time. More...
 
virtual void d2position (const Vector< double > &zeta, Vector< double > &r, DenseMatrix< double > &drdzeta, RankThreeTensor< double > &ddrdzeta) const
 Posn Vector and its 1st & 2nd derivatives w.r.t. to coordinates: $ \frac{dR_i}{d \zeta_\alpha}$ = drdzeta(alpha,i). $ \frac{d^2R_i}{d \zeta_\alpha d \zeta_\beta}$ = ddrdzeta(alpha,beta,i). Evaluated at current time. More...
 
virtual void locate_zeta (const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false)
 A geometric object may be composed of may sub-objects (e.g. a finite-element representation of a boundary). In order to implement sparse update functions, it is necessary to know the sub-object and local coordinate within that sub-object at a given intrinsic coordinate, zeta. Note that only one sub-object can "cover" any given intrinsic position. If the position is at an "interface" between sub-objects, either one can be returned. The default implementation merely returns, the pointer to the "entire" GeomObject and the coordinate, zeta The optional boolean flag only applies if a Newton method is used to find the value of zeta, and if true the value of the coordinate s is used as the initial guess for the method. If the flag is false (the default) a value of s=0 is used as the initial guess. More...
 
virtual void interpolated_zeta (const Vector< double > &s, Vector< double > &zeta) const
 A geometric object may be composed of many sub-objects each with their own local coordinate. This function returns the "global" intrinsic coordinate zeta (within the compound object), at a given local coordinate s (i.e. the intrinsic coordinate of the sub-GeomObject. In simple (non-compound) GeomObjects, the local intrinsic coordinate is the global intrinsic coordinate and so the function merely returns s. To make it less likely that the default implementation is called in error (because it is not overloaded in a derived GeomObject where the default is not appropriate, we do at least check that s and zeta have the same size if called in PARANOID mode. More...
 

Protected Attributes

Vector< Data * > Geom_data_pt
 Vector of pointers to Data items that affects the object's shape. More...
 
bool Must_clean_up
 Do I need to clean up? 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
 Timestepper (used to handle access to geometry at previous timesteps) More...
 

Detailed Description

Pseudo buckling ring: Circular ring deformed by the N-th buckling mode of a thin-wall elastic ring.

\[ x = R_0 \cos(\zeta) + \epsilon \left( \cos(N \zeta) \cos(\zeta) - A \sin(N \zeta) \sin(\zeta) \right) sin(2 \pi t/T) \]

\[ y = R_0 \sin(\zeta) + \epsilon \left( \cos(N \zeta) \sin(\zeta) + A \sin(N \zeta) \cos(\zeta) \right) sin(2 \pi t/T) \]

where A is the ratio of the aziumuthal to the radial buckling amplitude (A=-1/N for statically buckling rings) and epsilon is the buckling amplitude.

Definition at line 68 of file pseudo_buckling_ring.h.

Constructor & Destructor Documentation

oomph::PseudoBucklingRing::PseudoBucklingRing ( )
inline

Default constructor (empty and broken)

Definition at line 75 of file pseudo_buckling_ring.h.

oomph::PseudoBucklingRing::PseudoBucklingRing ( const Vector< Data * > &  geom_data_pt,
TimeStepper time_stepper_pt 
)
inline

Constructor: 1 Lagrangian coordinate, 2 Eulerian coords. Pass buckling amplitude, ratio of of buckling amplitudes, buckling wavenumber (as a double), undeformed ring radius (all as Data) and pointer to global timestepper.

Geom_data_pt[0]->value(0) = Eps_buckl;
Geom_data_pt[0]->value(1) = Ampl_ratio;
Geom_data_pt[0]->value(2) = Double_N_buckl;
Geom_data_pt[0]->value(3) = R_0;
Geom_data_pt[0]->value(4) = T;

Definition at line 94 of file pseudo_buckling_ring.h.

References Geom_data_pt, and Must_clean_up.

oomph::PseudoBucklingRing::PseudoBucklingRing ( const double &  eps_buckl,
const double &  ampl_ratio,
const unsigned  n_buckl,
const double &  r_0,
const double &  T,
TimeStepper time_stepper_pt 
)
inline

Constructor: 1 Lagrangian coordinate, 2 Eulerian coords. Pass buckling amplitude, ratio of of buckling amplitudes, buckling wavenumber, undeformed ring radius, period of osc and pointer to global timestepper. All geometric data is pinned by default.

Definition at line 134 of file pseudo_buckling_ring.h.

References Geom_data_pt, Must_clean_up, and oomph::TimeStepper::nprev_values().

oomph::PseudoBucklingRing::PseudoBucklingRing ( const double &  eps_buckl,
const double &  HoR,
const unsigned &  n_buckl,
const unsigned &  imode,
TimeStepper time_stepper_pt 
)
inline

Constructor: 1 Lagrangian coordinate, 2 Eulerian coords. Pass buckling amplitude, h/R, buckling wavenumbe and pointer to global timestepper. Other parameters get set up to represent oscillating ring with mode imode (1 or 2). All geometric data is pinned by default.

Definition at line 182 of file pseudo_buckling_ring.h.

References ampl_ratio(), Geom_data_pt, Must_clean_up, oomph::TimeStepper::nprev_values(), oomph::oomph_info, oomph::MathematicalConstants::Pi, and T().

oomph::PseudoBucklingRing::PseudoBucklingRing ( const PseudoBucklingRing node)
inline

Broken copy constructor.

Definition at line 276 of file pseudo_buckling_ring.h.

References oomph::BrokenCopy::broken_copy().

oomph::PseudoBucklingRing::~PseudoBucklingRing ( )
inline

Destructor: Clean up if necessary.

Definition at line 289 of file pseudo_buckling_ring.h.

References Geom_data_pt, and Must_clean_up.

Member Function Documentation

void oomph::PseudoBucklingRing::accel ( const Vector< double > &  zeta,
Vector< double > &  accel 
)
inline

Parametrised acceleration on object at current time: accel = d^2 r(zeta)/dt^2.

Definition at line 409 of file pseudo_buckling_ring.h.

References Geom_data_pt, oomph::GeomObject::Geom_object_time_stepper_pt, oomph::GeomObject::Ndim, oomph::MathematicalConstants::Pi, T(), oomph::Time::time(), and oomph::TimeStepper::time_pt().

Referenced by dposition_dt().

double oomph::PseudoBucklingRing::ampl_ratio ( )
inline

Access function for amplitude ratio.

Definition at line 304 of file pseudo_buckling_ring.h.

References Geom_data_pt.

Referenced by PseudoBucklingRing().

void oomph::PseudoBucklingRing::dposition_dt ( const Vector< double > &  zeta,
const unsigned &  j,
Vector< double > &  drdt 
)
inlinevirtual

j-th time-derivative on object at current time: $ \frac{d^{j} r(\zeta)}{dt^j} $.

Reimplemented from oomph::GeomObject.

Definition at line 494 of file pseudo_buckling_ring.h.

References accel(), position(), and veloc().

double oomph::PseudoBucklingRing::eps_buckl ( )
inline

Access function for buckling amplitude.

Definition at line 301 of file pseudo_buckling_ring.h.

References Geom_data_pt.

Data* oomph::PseudoBucklingRing::geom_data_pt ( const unsigned &  j)
inlinevirtual

Return pointer to the j-th Data item that the object's shape depends on.

Reimplemented from oomph::GeomObject.

Definition at line 530 of file pseudo_buckling_ring.h.

References Geom_data_pt.

double oomph::PseudoBucklingRing::n_buckl_float ( )
inline

Access function for buckling wavenumber (as float)

Definition at line 313 of file pseudo_buckling_ring.h.

References Geom_data_pt.

unsigned oomph::PseudoBucklingRing::ngeom_data ( ) const
inlinevirtual

How many items of Data does the shape of the object depend on?

Reimplemented from oomph::GeomObject.

Definition at line 526 of file pseudo_buckling_ring.h.

References Geom_data_pt.

void oomph::PseudoBucklingRing::operator= ( const PseudoBucklingRing )
inline

Broken assignment operator.

Definition at line 282 of file pseudo_buckling_ring.h.

References oomph::BrokenCopy::broken_assign().

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

Position Vector at Lagrangian coordinate zeta at discrete previous time (t=0: present time; t>0: previous time)

Reimplemented from oomph::GeomObject.

Definition at line 443 of file pseudo_buckling_ring.h.

References oomph::Time::dt(), Geom_data_pt, oomph::GeomObject::Geom_object_time_stepper_pt, i, oomph::GeomObject::Ndim, oomph::TimeStepper::nprev_values(), oomph::MathematicalConstants::Pi, T(), t, oomph::Time::time(), and oomph::TimeStepper::time_pt().

double oomph::PseudoBucklingRing::r_0 ( )
inline

Access function for undeformed radius.

Definition at line 307 of file pseudo_buckling_ring.h.

References Geom_data_pt.

Referenced by oomph::PseudoBucklingRingElement::get_residuals_generic().

void oomph::PseudoBucklingRing::set_ampl_ratio ( const double &  ampl_ratio)
inline

Set amplitude ratio between radial and azimuthal buckling displacements.

Definition at line 321 of file pseudo_buckling_ring.h.

References Geom_data_pt.

void oomph::PseudoBucklingRing::set_eps_buckl ( const double &  eps_buckl)
inline

Set buckling amplitude.

Definition at line 316 of file pseudo_buckling_ring.h.

References Geom_data_pt.

void oomph::PseudoBucklingRing::set_n_buckl ( const unsigned &  n_buckl)
inline

Set buckling wavenumber.

Definition at line 325 of file pseudo_buckling_ring.h.

References Geom_data_pt.

void oomph::PseudoBucklingRing::set_R_0 ( const double &  r_0)
inline

Set undeformed radius of ring.

Definition at line 329 of file pseudo_buckling_ring.h.

References Geom_data_pt.

void oomph::PseudoBucklingRing::set_T ( const double &  T)
inline

Set period of oscillation.

Definition at line 333 of file pseudo_buckling_ring.h.

References Geom_data_pt.

double oomph::PseudoBucklingRing::T ( )
inline

Access function for period of oscillation.

Definition at line 310 of file pseudo_buckling_ring.h.

References Geom_data_pt.

Referenced by accel(), position(), PseudoBucklingRing(), and veloc().

void oomph::PseudoBucklingRing::veloc ( const Vector< double > &  zeta,
Vector< double > &  veloc 
)
inline

Parametrised velocity on object at current time: veloc = d r(zeta)/dt.

Definition at line 375 of file pseudo_buckling_ring.h.

References Geom_data_pt, oomph::GeomObject::Geom_object_time_stepper_pt, oomph::GeomObject::Ndim, oomph::MathematicalConstants::Pi, T(), oomph::Time::time(), and oomph::TimeStepper::time_pt().

Referenced by dposition_dt().

Member Data Documentation

Vector<Data*> oomph::PseudoBucklingRing::Geom_data_pt
protected
bool oomph::PseudoBucklingRing::Must_clean_up
protected

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