![]() |
|
#include <pseudo_buckling_ring.h>
Inheritance diagram for oomph::PseudoBucklingRingElement:Public Member Functions | |
| PseudoBucklingRingElement (const double &eps_buckl, const double &l_ratio, const unsigned n_buckl, const double &r_0, const double &T, TimeStepper *time_stepper_pt) | |
| PseudoBucklingRingElement (const double &eps_buckl, const double &HoR, const unsigned &n_buckl, const unsigned &imode, TimeStepper *time_stepper_pt) | |
| PseudoBucklingRingElement (const PseudoBucklingRingElement &dummy)=delete | |
| Broken copy constructor. More... | |
| void | operator= (const PseudoBucklingRingElement &)=delete |
| Broken assignment operator. More... | |
| virtual | ~PseudoBucklingRingElement () |
| Destructor: Kill internal data and set to NULL. More... | |
| virtual void | get_residuals (Vector< double > &residuals) |
| Compute element residual Vector (wrapper) More... | |
| virtual void | get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
| Compute element residual Vector and element Jacobian matrix (wrapper) More... | |
| Data *const & | reference_pressure_pt () const |
| Pointer to pressure data that is used as reference pressure. More... | |
| double | reference_pressure () const |
| Return the reference pressure. More... | |
| void | set_reference_pressure_pt (Data *const &data_pt) |
| Set the pressure data that is used as reference pressure. More... | |
Public Member Functions inherited from oomph::GeneralisedElement | |
| GeneralisedElement () | |
| Constructor: Initialise all pointers and all values to zero. More... | |
| virtual | ~GeneralisedElement () |
| Virtual destructor to clean up any memory allocated by the object. More... | |
| GeneralisedElement (const GeneralisedElement &)=delete | |
| Broken copy constructor. More... | |
| void | operator= (const GeneralisedElement &)=delete |
| Broken assignment operator. More... | |
| Data *& | internal_data_pt (const unsigned &i) |
| Return a pointer to i-th internal data object. More... | |
| Data *const & | internal_data_pt (const unsigned &i) const |
| Return a pointer to i-th internal data object (const version) More... | |
| Data *& | external_data_pt (const unsigned &i) |
| Return a pointer to i-th external data object. More... | |
| Data *const & | external_data_pt (const unsigned &i) const |
| Return a pointer to i-th external data object (const version) More... | |
| unsigned long | eqn_number (const unsigned &ieqn_local) const |
| int | local_eqn_number (const unsigned long &ieqn_global) const |
| unsigned | add_external_data (Data *const &data_pt, const bool &fd=true) |
| bool | external_data_fd (const unsigned &i) const |
| void | exclude_external_data_fd (const unsigned &i) |
| void | include_external_data_fd (const unsigned &i) |
| void | flush_external_data () |
| Flush all external data. More... | |
| void | flush_external_data (Data *const &data_pt) |
| Flush the object addressed by data_pt from the external data array. More... | |
| unsigned | ninternal_data () const |
| Return the number of internal data objects. More... | |
| unsigned | nexternal_data () const |
| Return the number of external data objects. More... | |
| unsigned | ndof () const |
| Return the number of equations/dofs in the element. More... | |
| void | dof_vector (const unsigned &t, Vector< double > &dof) |
| Return the vector of dof values at time level t. More... | |
| void | dof_pt_vector (Vector< double * > &dof_pt) |
| Return the vector of pointers to dof values. More... | |
| void | set_internal_data_time_stepper (const unsigned &i, TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
| void | assign_internal_eqn_numbers (unsigned long &global_number, Vector< double * > &Dof_pt) |
| void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
| virtual void | describe_local_dofs (std::ostream &out, const std::string ¤t_string) const |
| void | add_internal_value_pt_to_map (std::map< unsigned, double * > &map_of_value_pt) |
| virtual void | assign_local_eqn_numbers (const bool &store_local_dof_pt) |
| virtual void | complete_setup_of_dependencies () |
| virtual void | get_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &mass_matrix) |
| virtual void | get_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
| virtual void | get_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
| virtual void | get_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
| virtual void | get_djacobian_and_dmass_matrix_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam) |
| virtual void | get_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
| virtual void | get_inner_products (Vector< std::pair< unsigned, unsigned >> const &history_index, Vector< double > &inner_product) |
| virtual void | get_inner_product_vectors (Vector< unsigned > const &history_index, Vector< Vector< double >> &inner_product_vector) |
| virtual unsigned | self_test () |
| virtual void | compute_norm (Vector< double > &norm) |
| virtual void | compute_norm (double &norm) |
| virtual unsigned | ndof_types () const |
| virtual void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
Public Member Functions inherited from oomph::PseudoBucklingRing | |
| 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) |
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 () |
| 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 |
Private Member Functions | |
| int | geometric_local_eqn () |
| Return the local equation number of the internal geometric variable. More... | |
| int | reference_pressure_local_eqn () |
| Return the local equation number of the reference pressure variable. More... | |
Private Attributes | |
| unsigned | Internal_geometric_variable_index |
| unsigned | External_reference_pressure_index |
| Data * | External_reference_pressure_pt |
Additional Inherited Members | |
Static Public Attributes inherited from oomph::GeneralisedElement | |
| static bool | Suppress_warning_about_repeated_internal_data |
| static bool | Suppress_warning_about_repeated_external_data = true |
| static double | Default_fd_jacobian_step = 1.0e-8 |
Protected Attributes inherited from oomph::PseudoBucklingRing | |
| 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... | |
| TimeStepper * | Geom_object_time_stepper_pt |
Static Protected Attributes inherited from oomph::GeneralisedElement | |
| static DenseMatrix< double > | Dummy_matrix |
| static std::deque< double * > | Dof_pt_deque |
//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// 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. Scale R_0 is adjusted to ensure conservation of (computational) volume/area. This is implemented by a pseudo-elasticity approach: The governing equation for \( R_0 \) is:
\[ p_{ref} = R_0 - 1.0 \]
The pointer to the reference pressure needs to be set with reference_pressure_pt().
|
inline |
Constructor: Build pseudo buckling ring from doubles that describe the geometry.
References oomph::GeneralisedElement::add_internal_data(), oomph::PseudoBucklingRing::Geom_data_pt, i, and Internal_geometric_variable_index.
|
inline |
Constructor: 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 oomph::GeneralisedElement::add_internal_data(), oomph::PseudoBucklingRing::Geom_data_pt, i, and Internal_geometric_variable_index.
|
delete |
Broken copy constructor.
|
inlinevirtual |
Destructor: Kill internal data and set to NULL.
References oomph::PseudoBucklingRing::Must_clean_up.
|
inlineprivate |
Return the local equation number of the internal geometric variable.
References Internal_geometric_variable_index, and oomph::GeneralisedElement::internal_local_eqn().
Referenced by get_residuals_generic().
|
inlinevirtual |
Compute element residual Vector and element Jacobian matrix (wrapper)
Reimplemented from oomph::GeneralisedElement.
References get_residuals_generic().
|
inlinevirtual |
Compute element residual Vector (wrapper)
Reimplemented from oomph::GeneralisedElement.
References get_residuals_generic().
|
inlineprotectedvirtual |
Compute element residual Vector (only if flag=0) and also element Jacobian matrix (if flag=1)
References geometric_local_eqn(), oomph::Vector< _Tp >::initialise(), oomph::DenseMatrix< T >::initialise(), oomph::PseudoBucklingRing::r_0(), reference_pressure(), and reference_pressure_local_eqn().
Referenced by get_jacobian(), and get_residuals().
|
delete |
Broken assignment operator.
|
inline |
Return the reference pressure.
References External_reference_pressure_pt, and oomph::Data::value().
Referenced by get_residuals_generic().
|
inlineprivate |
Return the local equation number of the reference pressure variable.
References oomph::GeneralisedElement::external_local_eqn(), and External_reference_pressure_index.
Referenced by get_residuals_generic().
|
inline |
Pointer to pressure data that is used as reference pressure.
References oomph::GeneralisedElement::external_data_pt().
|
inline |
Set the pressure data that is used as reference pressure.
References oomph::GeneralisedElement::add_external_data(), External_reference_pressure_index, External_reference_pressure_pt, and oomph::GeneralisedElement::flush_external_data().
|
private |
The Data object that represents the reference pressure is stored at the location indexed by this integer in the external data storage.
Referenced by reference_pressure_local_eqn(), and set_reference_pressure_pt().
|
private |
Pointer to the data object that represents the external reference pressure
Referenced by reference_pressure(), and set_reference_pressure_pt().
|
private |
Index of the value stored in the single geometric object that has become an unknown
Referenced by geometric_local_eqn(), and PseudoBucklingRingElement().