![]() |
|
#include <pseudo_buckling_ring.h>
Public Member Functions | |
PseudoBucklingRing () | |
Default constructor (empty and broken) More... | |
PseudoBucklingRing (const Vector< Data * > &geom_data_pt, TimeStepper *time_stepper_pt) | |
PseudoBucklingRing (const double &eps_buckl, const double &l_ratio, const unsigned n_buckl, const double &r_0, const double &T, TimeStepper *time_stepper_pt) | |
PseudoBucklingRing (const double &eps_buckl, const double &HoR, const unsigned &n_buckl, const unsigned &imode, TimeStepper *time_stepper_pt) | |
PseudoBucklingRing (const PseudoBucklingRing &node)=delete | |
Broken copy constructor. More... | |
void | operator= (const PseudoBucklingRing &)=delete |
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 &l_ratio) |
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 |
void | veloc (const Vector< double > &zeta, Vector< double > &veloc) |
void | accel (const Vector< double > &zeta, Vector< double > &accel) |
void | position (const unsigned &t, const Vector< double > &zeta, Vector< double > &r) const |
void | dposition_dt (const Vector< double > &zeta, const unsigned &j, Vector< double > &drdt) |
unsigned | ngeom_data () const |
How many items of Data does the shape of the object depend on? More... | |
Data * | geom_data_pt (const unsigned &j) |
![]() | |
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 () |
TimeStepper * | time_stepper_pt () const |
virtual void | position (const double &t, const Vector< double > &zeta, Vector< double > &r) const |
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 | |
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... | |
![]() | |
unsigned | NLagrangian |
Number of Lagrangian (intrinsic) coordinates. More... | |
unsigned | Ndim |
Number of Eulerian coordinates. More... | |
TimeStepper * | Geom_object_time_stepper_pt |
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.
|
inline |
Default constructor (empty and broken)
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
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.
References geom_data_pt(), Geom_data_pt, Must_clean_up, oomph::Data::nvalue(), OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
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.
References ampl_ratio(), eps_buckl(), Geom_data_pt, Must_clean_up, oomph::TimeStepper::nprev_values(), r_0(), and oomph::GeomObject::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.
References ampl_ratio(), eps_buckl(), Geom_data_pt, Must_clean_up, oomph::TimeStepper::nprev_values(), oomph::oomph_info, oomph::MathematicalConstants::Pi, Eigen::bfloat16_impl::pow(), sqrt(), T(), and oomph::GeomObject::time_stepper_pt().
|
delete |
Broken copy constructor.
|
inline |
|
inline |
Parametrised acceleration on object at current time: accel = d^2 r(zeta)/dt^2.
References cos(), Geom_data_pt, oomph::GeomObject::Geom_object_time_stepper_pt, oomph::GeomObject::Ndim, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::MathematicalConstants::Pi, sin(), T(), oomph::Time::time(), oomph::TimeStepper::time_pt(), and Eigen::zeta().
Referenced by dposition_dt().
|
inline |
Access function for amplitude ratio.
References Geom_data_pt.
Referenced by PseudoBucklingRing(), and set_ampl_ratio().
|
inlinevirtual |
j-th time-derivative on object at current time: \( \frac{d^{j} r(\zeta)}{dt^j} \).
Reimplemented from oomph::GeomObject.
References accel(), j, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, position(), veloc(), and Eigen::zeta().
|
inline |
Access function for buckling amplitude.
References Geom_data_pt.
Referenced by PseudoBucklingRing(), and set_eps_buckl().
Return pointer to the j-th Data item that the object's shape depends on
Reimplemented from oomph::GeomObject.
References Geom_data_pt, and j.
Referenced by PseudoBucklingRing().
|
inline |
Access function for buckling wavenumber (as float)
References Geom_data_pt.
|
inlinevirtual |
How many items of Data does the shape of the object depend on?
Reimplemented from oomph::GeomObject.
References Geom_data_pt.
|
delete |
Broken assignment operator.
|
inlinevirtual |
Position Vector at Lagrangian coordinate zeta at discrete previous time (t=0: present time; t>0: previous time)
Reimplemented from oomph::GeomObject.
References cos(), oomph::Time::dt(), Geom_data_pt, oomph::GeomObject::Geom_object_time_stepper_pt, i, oomph::GeomObject::Ndim, oomph::TimeStepper::nprev_values(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::MathematicalConstants::Pi, UniformPSDSelfTest::r, sin(), plotPSD::t, oomph::Time::time(), oomph::TimeStepper::time_pt(), and Eigen::zeta().
|
inlinevirtual |
Position Vector at Lagrangian coordinate zeta at present time
Implements oomph::GeomObject.
References cos(), Geom_data_pt, oomph::GeomObject::Geom_object_time_stepper_pt, oomph::GeomObject::Ndim, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::MathematicalConstants::Pi, UniformPSDSelfTest::r, sin(), oomph::Time::time(), oomph::TimeStepper::time_pt(), and Eigen::zeta().
Referenced by dposition_dt().
|
inline |
Access function for undeformed radius.
References Geom_data_pt.
Referenced by oomph::PseudoBucklingRingElement::get_residuals_generic(), PseudoBucklingRing(), and set_R_0().
|
inline |
Set amplitude ratio between radial and azimuthal buckling displacements
References ampl_ratio(), and Geom_data_pt.
|
inline |
Set buckling amplitude.
References eps_buckl(), and Geom_data_pt.
|
inline |
Set buckling wavenumber.
References Geom_data_pt.
|
inline |
Set undeformed radius of ring.
References Geom_data_pt, and r_0().
|
inline |
Set period of oscillation.
References Geom_data_pt.
|
inline |
Access function for period of oscillation.
References Geom_data_pt.
Referenced by accel(), PseudoBucklingRing(), and veloc().
|
inline |
Parametrised velocity on object at current time: veloc = d r(zeta)/dt.
References cos(), Geom_data_pt, oomph::GeomObject::Geom_object_time_stepper_pt, oomph::GeomObject::Ndim, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::MathematicalConstants::Pi, sin(), T(), oomph::Time::time(), oomph::TimeStepper::time_pt(), and Eigen::zeta().
Referenced by dposition_dt().
Vector of pointers to Data items that affects the object's shape.
Referenced by accel(), ampl_ratio(), eps_buckl(), geom_data_pt(), n_buckl_float(), ngeom_data(), position(), PseudoBucklingRing(), oomph::PseudoBucklingRingElement::PseudoBucklingRingElement(), r_0(), set_ampl_ratio(), set_eps_buckl(), set_n_buckl(), set_R_0(), set_T(), T(), veloc(), and ~PseudoBucklingRing().
|
protected |
Do I need to clean up?
Referenced by PseudoBucklingRing(), ~PseudoBucklingRing(), and oomph::PseudoBucklingRingElement::~PseudoBucklingRingElement().