////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// More...
#include <geom_obj_with_boundary.h>
Public Member Functions | |
WarpedCircularDisk (const double &epsilon, const unsigned &n, const double &z_offset=0.0) | |
Constructor. Pass amplitude and azimuthal wavenumber of warping as arguments. Can specify vertical offset as final, optional argument. More... | |
WarpedCircularDisk () | |
Empty default constructor. More... | |
WarpedCircularDisk (const WarpedCircularDisk &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const WarpedCircularDisk &)=delete |
Broken assignment operator. More... | |
virtual | ~WarpedCircularDisk () |
Destructor. More... | |
double & | epsilon () |
Access fct to amplitude of disk warping. 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 |
Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Object is steady so calls time-independent version. More... | |
void | boundary_triad (const unsigned &b, const double &zeta_bound, Vector< double > &r, Vector< double > &tangent, Vector< double > &normal, Vector< double > &binormal) |
Boundary triad on boundary b at boundary coordinate zeta_bound. More... | |
Public Member Functions inherited from oomph::DiskLikeGeomObjectWithBoundaries | |
DiskLikeGeomObjectWithBoundaries () | |
Constructor. More... | |
unsigned | nboundary () const |
How many boundaries do we have? More... | |
void | position_on_boundary (const unsigned &b, const double &zeta_bound, Vector< double > &r) const |
Compute 3D vector of Eulerian coordinates at 1D boundary coordinate zeta_bound on boundary b: More... | |
void | zeta_on_boundary (const unsigned &b, const double &zeta_bound, Vector< double > &zeta) const |
Compute 2D vector of intrinsic coordinates at 1D boundary coordinate zeta_bound on boundary b: More... | |
GeomObject * | boundary_parametrising_geom_object_pt (const unsigned &b) const |
Pointer to GeomObject<1,2> that parametrises intrinisc coordinates along boundary b. More... | |
double | zeta_boundary_start (const unsigned &b) const |
Initial value of 1D boundary coordinate zeta_bound on boundary b: More... | |
double | zeta_boundary_end (const unsigned &b) const |
Final value of 1D boundary coordinate zeta_bound on boundary b: More... | |
void | output_boundaries (const unsigned &nplot, std::ofstream &two_d_boundaries_file, std::ofstream &three_d_boundaries_file) |
Output boundaries at nplot plot points. Streams: More... | |
void | output_boundaries_and_triads (const unsigned &nplot, std::ofstream &two_d_boundaries_file, std::ofstream &three_d_boundaries_file, std::ofstream &boundaries_tangent_file, std::ofstream &boundaries_normal_file, std::ofstream &boundaries_binormal_file) |
Output boundaries and triad at nplot plot points. Streams: More... | |
void | add_region_coordinates (const unsigned &r, Vector< double > &zeta_in_region) |
Specify intrinsic coordinates of a point within a specified region – region ID, r, should be positive. More... | |
std::map< unsigned, Vector< double > > | zeta_in_region () const |
Return map that stores zeta coordinates of points that identify regions. 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)=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 () |
Access function for pointer to time stepper: Null if object is not time-dependent. More... | |
TimeStepper * | time_stepper_pt () const |
Access function for pointer to time stepper: Null if object is not time-dependent. Const version. More... | |
virtual unsigned | ngeom_data () const |
How many items of Data does the shape of the object depend on? This is implemented as a broken virtual function. You must overload this for GeomObjects that contain geometric Data, i.e. GeomObjects whose shape depends on Data that may contain unknowns in the overall Problem. More... | |
virtual Data * | geom_data_pt (const unsigned &j) |
Return pointer to the j-th Data item that the object's shape depends on. This is implemented as a broken virtual function. You must overload this for GeomObjects that contain geometric Data, i.e. GeomObjects whose shape depends on Data that may contain unknowns in the overall Problem. More... | |
virtual void | position (const double &t, const Vector< double > &zeta, Vector< double > &r) const |
Parametrised position on object: r(zeta). Evaluated at the continuous time value, t. More... | |
virtual void | dposition_dt (const Vector< double > &zeta, const unsigned &j, Vector< double > &drdt) |
j-th time-derivative on object at current time: . More... | |
virtual void | dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const |
Derivative of position Vector w.r.t. to coordinates: = 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: = 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: = drdzeta(alpha,i). = 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... | |
Private Member Functions | |
double | w (const double &r, const double &phi) const |
Vertical deflection. More... | |
double | dwdr (const double &r, const double &phi) const |
Deriv of vertical deflection w.r.t. radius. More... | |
double | dwdphi (const double &r, const double &phi) const |
Deriv of vertical deflection w.r.t. angle. More... | |
Private Attributes | |
double | Epsilon |
Amplitude of non-axisymmetric deformation. More... | |
unsigned | N |
Wavenumber of non-axisymmetric deformation. More... | |
double | Z_offset |
Vertical offset. More... | |
Additional Inherited Members | |
Protected Attributes inherited from oomph::DiskLikeGeomObjectWithBoundaries | |
Vector< double > | Zeta_boundary_start |
Storage for initial value of 1D boundary coordinate on boundary b: More... | |
Vector< double > | Zeta_boundary_end |
Storage for final value of 1D boundary coordinate on boundary b: More... | |
Vector< GeomObject * > | Boundary_parametrising_geom_object_pt |
Pointer to GeomObject<1,2> that parametrises intrinisc coordinates along boundary b; essentially provides a wrapper to zeta_on_boundary(...) More... | |
std::map< unsigned, Vector< double > > | Zeta_in_region |
Map to store zeta coordinates of points that identify regions. 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 |
Timestepper (used to handle access to geometry at previous timesteps) More... | |
////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////
Warped disk in 3d: zeta[0]=x; zeta[1]=y (so it doesn't have coordinate singularities), with specification of two boundaries (b=0,1) that turn the whole thing into a circular disk.
Definition at line 341 of file geom_obj_with_boundary.h.
|
inline |
Constructor. Pass amplitude and azimuthal wavenumber of warping as arguments. Can specify vertical offset as final, optional argument.
Definition at line 347 of file geom_obj_with_boundary.h.
References oomph::DiskLikeGeomObjectWithBoundaries::Boundary_parametrising_geom_object_pt, oomph::MathematicalConstants::Pi, oomph::DiskLikeGeomObjectWithBoundaries::Zeta_boundary_end, and oomph::DiskLikeGeomObjectWithBoundaries::Zeta_boundary_start.
|
inline |
Empty default constructor.
Definition at line 370 of file geom_obj_with_boundary.h.
|
delete |
Broken copy constructor.
|
inlinevirtual |
Destructor.
Definition at line 385 of file geom_obj_with_boundary.h.
References oomph::DiskLikeGeomObjectWithBoundaries::Boundary_parametrising_geom_object_pt, and oomph::DiskLikeGeomObjectWithBoundaries::nboundary().
|
inlinevirtual |
Boundary triad on boundary b at boundary coordinate zeta_bound.
Reimplemented from oomph::DiskLikeGeomObjectWithBoundaries.
Definition at line 425 of file geom_obj_with_boundary.h.
|
inlineprivate |
Deriv of vertical deflection w.r.t. angle.
Definition at line 481 of file geom_obj_with_boundary.h.
Referenced by boundary_triad().
|
inlineprivate |
Deriv of vertical deflection w.r.t. radius.
Definition at line 475 of file geom_obj_with_boundary.h.
Referenced by boundary_triad().
|
inline |
Access fct to amplitude of disk warping.
Definition at line 396 of file geom_obj_with_boundary.h.
References Epsilon.
|
delete |
Broken assignment operator.
|
inlinevirtual |
Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Object is steady so calls time-independent version.
Reimplemented from oomph::GeomObject.
Definition at line 416 of file geom_obj_with_boundary.h.
References position().
|
inlinevirtual |
Position Vector at Lagrangian coordinate zeta.
Implements oomph::GeomObject.
Definition at line 402 of file geom_obj_with_boundary.h.
Referenced by position().
|
inlineprivate |
Vertical deflection.
Definition at line 469 of file geom_obj_with_boundary.h.
Referenced by boundary_triad(), and position().
|
private |
|
private |
Wavenumber of non-axisymmetric deformation.
Definition at line 490 of file geom_obj_with_boundary.h.
|
private |
Vertical offset.
Definition at line 493 of file geom_obj_with_boundary.h.
Referenced by boundary_triad(), and position().