WarpedLine Class Reference

Warped line in 2D space. More...

+ Inheritance diagram for WarpedLine:

Public Member Functions

 WarpedLine (const double &ampl, const double &x_min, const double &x_max)
 Constructor: Specify amplitude of deflection from straight horizontal line. More...
 
 WarpedLine (const WarpedLine &dummy)
 Broken copy constructor. More...
 
void operator= (const WarpedLine &)
 Broken assignment operator. More...
 
 ~WarpedLine ()
 Empty Destructor. 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
 
double radius () const
 Return radius. More...
 
double y_c () const
 Return y coordinate of centre. More...
 
doubleampl ()
 Access to amplitude. More...
 
unsigned ngeom_data () const
 
void set_reversed ()
 Local coordinates are reversed. More...
 
void set_non_reversed ()
 Local coordinates are not reversed. More...
 
doublelift_off_amplitude ()
 Lift off amplitude. More...
 
doublelift_off_alpha ()
 Exponential factor for lift off (controls sharpness) More...
 
 WarpedLine (const double &ampl, const double &x_min, const double &x_max)
 Constructor: Specify amplitude of deflection from straight horizontal line. More...
 
 WarpedLine (const WarpedLine &dummy)
 Broken copy constructor. More...
 
 ~WarpedLine ()
 Empty Destructor. 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
 
double radius () const
 Return radius. More...
 
double y_c () const
 Return y coordinate of centre. More...
 
doubleampl ()
 Access to amplitude. More...
 
unsigned ngeom_data () const
 
void set_reversed ()
 Local coordinates are reversed. More...
 
void set_non_reversed ()
 Local coordinates are not reversed. More...
 
doublelift_off_amplitude ()
 Lift off amplitude. More...
 
doublelift_off_alpha ()
 Exponential factor for lift off (controls sharpness) More...
 
 WarpedLine (const double &ampl)
 Constructor: Specify amplitude of deflection from straight horizontal line. More...
 
 WarpedLine (const WarpedLine &dummy)
 Broken copy constructor. More...
 
void operator= (const WarpedLine &)
 Broken assignment operator. More...
 
 ~WarpedLine ()
 Empty Destructor. 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
 
doubleampl ()
 Access to amplitude. More...
 
unsigned ngeom_data () const
 
 WarpedLine (const double &ampl)
 Constructor: Specify amplitude of deflection from straight horizontal line. More...
 
 WarpedLine (const WarpedLine &dummy)
 Broken copy constructor. More...
 
void operator= (const WarpedLine &)
 Broken assignment operator. More...
 
 ~WarpedLine ()
 Empty Destructor. 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
 
doubleampl ()
 Access to amplitude. More...
 
unsigned ngeom_data () const
 
 WarpedLine (const double &ampl)
 Constructor: Specify amplitude of deflection from straight horizontal line. More...
 
 WarpedLine (const WarpedLine &dummy)
 Broken copy constructor. More...
 
void operator= (const WarpedLine &)
 Broken assignment operator. More...
 
 ~WarpedLine ()
 Empty Destructor. 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
 
doubleampl ()
 Access to amplitude. More...
 
unsigned ngeom_data () const
 
 WarpedLine (const double &ampl)
 Constructor: Specify amplitude of deflection from straight horizontal line. More...
 
 WarpedLine (const WarpedLine &dummy)
 Broken copy constructor. More...
 
void operator= (const WarpedLine &)
 Broken assignment operator. More...
 
 ~WarpedLine ()
 Empty Destructor. 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
 
doubleampl ()
 Access to amplitude. More...
 
 WarpedLine (const double &ampl)
 Constructor: Specify amplitude of deflection from straight horizontal line. More...
 
 WarpedLine (const WarpedLine &dummy)
 Broken copy constructor. More...
 
void operator= (const WarpedLine &)
 Broken assignment operator. More...
 
 ~WarpedLine ()
 Empty Destructor. 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
 
doubleampl ()
 Access to amplitude. More...
 
unsigned ngeom_data () 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 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
 

Private Attributes

double Ampl
 Amplitude of perturbation. More...
 
double X_min
 Min zeta coordinate. More...
 
double X_max
 Max zeta coordinate. More...
 
bool Reversed
 Reverse? More...
 
double Lift_off_amplitude
 Lift off amplitude. More...
 
double Lift_off_alpha
 Exponential factor for lift off (controls sharpness) More...
 

Additional Inherited Members

- 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

Warped line in 2D space.

Constructor & Destructor Documentation

◆ WarpedLine() [1/14]

WarpedLine::WarpedLine ( const double ampl,
const double x_min,
const double x_max 
)
inline

Constructor: Specify amplitude of deflection from straight horizontal line.

1995  : GeomObject(1,2)
1996  {
1997  Ampl=ampl;
1998  X_min=x_min;
1999  X_max=x_max;
2000  Reversed=false;
2001  Lift_off_amplitude=0.0;
2002  Lift_off_alpha=100.0;
2003  }
double X_min
Min zeta coordinate.
Definition: heated_linear_solid_contact_with_gravity.cc:2105
double X_max
Max zeta coordinate.
Definition: heated_linear_solid_contact_with_gravity.cc:2108
bool Reversed
Reverse?
Definition: heated_linear_solid_contact_with_gravity.cc:2111
double Lift_off_alpha
Exponential factor for lift off (controls sharpness)
Definition: heated_linear_solid_contact_with_gravity.cc:2117
double Lift_off_amplitude
Lift off amplitude.
Definition: heated_linear_solid_contact_with_gravity.cc:2114
double Ampl
Amplitude of perturbation.
Definition: heated_linear_solid_contact_with_gravity.cc:2102
double & ampl()
Access to amplitude.
Definition: heated_linear_solid_contact_with_gravity.cc:2066
GeomObject()
Default constructor.
Definition: geom_objects.h:104

References ampl(), Ampl, Lift_off_alpha, Lift_off_amplitude, Reversed, X_max, and X_min.

◆ WarpedLine() [2/14]

WarpedLine::WarpedLine ( const WarpedLine dummy)
inline

Broken copy constructor.

2007  {
2008  BrokenCopy::broken_copy("WarpedLine");
2009  }
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
Definition: oomph_utilities.cc:212

References oomph::BrokenCopy::broken_copy().

◆ ~WarpedLine() [1/7]

WarpedLine::~WarpedLine ( )
inline

Empty Destructor.

2019 {}

◆ WarpedLine() [3/14]

WarpedLine::WarpedLine ( const double ampl,
const double x_min,
const double x_max 
)
inline

Constructor: Specify amplitude of deflection from straight horizontal line.

90  : GeomObject(1,2)
91  {
92  Ampl=ampl;
93  X_min=x_min;
94  X_max=x_max;
95  Reversed=false;
97  Lift_off_alpha=10000.0;
98  }

References RayParam::X_max, and RayParam::X_min.

◆ WarpedLine() [4/14]

WarpedLine::WarpedLine ( const WarpedLine dummy)
inline

Broken copy constructor.

102  {
103  BrokenCopy::broken_copy("WarpedLine");
104  }

References oomph::BrokenCopy::broken_copy().

◆ ~WarpedLine() [2/7]

WarpedLine::~WarpedLine ( )
inline

Empty Destructor.

108 {}

◆ WarpedLine() [5/14]

WarpedLine::WarpedLine ( const double ampl)
inline

Constructor: Specify amplitude of deflection from straight horizontal line.

72  : GeomObject(1,2)
73  {
74  Ampl=ampl;
75  }

◆ WarpedLine() [6/14]

WarpedLine::WarpedLine ( const WarpedLine dummy)
inline

Broken copy constructor.

79  {
80  BrokenCopy::broken_copy("WarpedLine");
81  }

References oomph::BrokenCopy::broken_copy().

◆ ~WarpedLine() [3/7]

WarpedLine::~WarpedLine ( )
inline

Empty Destructor.

91 {}

◆ WarpedLine() [7/14]

WarpedLine::WarpedLine ( const double ampl)
inline

Constructor: Specify amplitude of deflection from straight horizontal line.

73  : GeomObject(1,2)
74  {
75  Ampl=ampl;
76  }

◆ WarpedLine() [8/14]

WarpedLine::WarpedLine ( const WarpedLine dummy)
inline

Broken copy constructor.

80  {
81  BrokenCopy::broken_copy("WarpedLine");
82  }

References oomph::BrokenCopy::broken_copy().

◆ ~WarpedLine() [4/7]

WarpedLine::~WarpedLine ( )
inline

Empty Destructor.

92 {}

◆ WarpedLine() [9/14]

WarpedLine::WarpedLine ( const double ampl)
inline

Constructor: Specify amplitude of deflection from straight horizontal line.

72  : GeomObject(1,2)
73  {
74  Ampl=ampl;
75  }

◆ WarpedLine() [10/14]

WarpedLine::WarpedLine ( const WarpedLine dummy)
inline

Broken copy constructor.

79  {
80  BrokenCopy::broken_copy("WarpedLine");
81  }

References oomph::BrokenCopy::broken_copy().

◆ ~WarpedLine() [5/7]

WarpedLine::~WarpedLine ( )
inline

Empty Destructor.

91 {}

◆ WarpedLine() [11/14]

WarpedLine::WarpedLine ( const double ampl)
inline

Constructor: Specify amplitude of deflection from straight horizontal line.

51  : GeomObject(1,2)
52  {
53  Ampl=ampl;
54  }

◆ WarpedLine() [12/14]

WarpedLine::WarpedLine ( const WarpedLine dummy)
inline

Broken copy constructor.

58  {
59  BrokenCopy::broken_copy("WarpedLine");
60  }

References oomph::BrokenCopy::broken_copy().

◆ ~WarpedLine() [6/7]

WarpedLine::~WarpedLine ( )
inline

Empty Destructor.

70 {}

◆ WarpedLine() [13/14]

WarpedLine::WarpedLine ( const double ampl)
inline

Constructor: Specify amplitude of deflection from straight horizontal line.

219  : GeomObject(1,2)
220  {
221  Ampl=ampl;
222  }

◆ WarpedLine() [14/14]

WarpedLine::WarpedLine ( const WarpedLine dummy)
inline

Broken copy constructor.

226  {
227  BrokenCopy::broken_copy("WarpedLine");
228  }

References oomph::BrokenCopy::broken_copy().

◆ ~WarpedLine() [7/7]

WarpedLine::~WarpedLine ( )
inline

Empty Destructor.

238 {}

Member Function Documentation

◆ ampl() [1/7]

double& WarpedLine::ampl ( )
inline

Access to amplitude.

2066 {return Ampl;}

References Ampl.

Referenced by main(), and WarpedLine().

◆ ampl() [2/7]

double& WarpedLine::ampl ( )
inline

Access to amplitude.

155 {return Ampl;}

◆ ampl() [3/7]

double& WarpedLine::ampl ( )
inline

Access to amplitude.

111 {return Ampl;}

◆ ampl() [4/7]

double& WarpedLine::ampl ( )
inline

Access to amplitude.

112 {return Ampl;}

◆ ampl() [5/7]

double& WarpedLine::ampl ( )
inline

Access to amplitude.

111 {return Ampl;}

◆ ampl() [6/7]

double& WarpedLine::ampl ( )
inline

Access to amplitude.

90 {return Ampl;}

◆ ampl() [7/7]

double& WarpedLine::ampl ( )
inline

Access to amplitude.

258 {return Ampl;}

◆ lift_off_alpha() [1/2]

double& WarpedLine::lift_off_alpha ( )
inline

Exponential factor for lift off (controls sharpness)

2095  {
2096  return Lift_off_alpha;
2097  }

References Lift_off_alpha.

◆ lift_off_alpha() [2/2]

double& WarpedLine::lift_off_alpha ( )
inline

Exponential factor for lift off (controls sharpness)

184  {
185  return Lift_off_alpha;
186  }

◆ lift_off_amplitude() [1/2]

double& WarpedLine::lift_off_amplitude ( )
inline

Lift off amplitude.

2089  {
2090  return Lift_off_amplitude;
2091  }

References Lift_off_amplitude.

Referenced by main().

◆ lift_off_amplitude() [2/2]

double& WarpedLine::lift_off_amplitude ( )
inline

Lift off amplitude.

178  {
179  return Lift_off_amplitude;
180  }

◆ ngeom_data() [1/6]

unsigned WarpedLine::ngeom_data ( ) const
inlinevirtual

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

Reimplemented from oomph::GeomObject.

2071  {
2072  return 0;
2073  }

◆ ngeom_data() [2/6]

unsigned WarpedLine::ngeom_data ( ) const
inlinevirtual

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

Reimplemented from oomph::GeomObject.

160  {
161  return 0;
162  }

◆ ngeom_data() [3/6]

unsigned WarpedLine::ngeom_data ( ) const
inlinevirtual

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

Reimplemented from oomph::GeomObject.

116  {
117  return 0;
118  }

◆ ngeom_data() [4/6]

unsigned WarpedLine::ngeom_data ( ) const
inlinevirtual

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

Reimplemented from oomph::GeomObject.

117  {
118  return 0;
119  }

◆ ngeom_data() [5/6]

unsigned WarpedLine::ngeom_data ( ) const
inlinevirtual

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

Reimplemented from oomph::GeomObject.

116  {
117  return 0;
118  }

◆ ngeom_data() [6/6]

unsigned WarpedLine::ngeom_data ( ) const
inlinevirtual

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

Reimplemented from oomph::GeomObject.

263  {
264  return 0;
265  }

◆ operator=() [1/6]

void WarpedLine::operator= ( const WarpedLine )
inline

Broken assignment operator.

2013  {
2014  BrokenCopy::broken_assign("WarpedLine");
2015  }
void broken_assign(const std::string &class_name)
Issue error message and terminate execution.
Definition: oomph_utilities.cc:195

References oomph::BrokenCopy::broken_assign().

◆ operator=() [2/6]

void WarpedLine::operator= ( const WarpedLine )
inline

Broken assignment operator.

85  {
86  BrokenCopy::broken_assign("WarpedLine");
87  }

References oomph::BrokenCopy::broken_assign().

◆ operator=() [3/6]

void WarpedLine::operator= ( const WarpedLine )
inline

Broken assignment operator.

86  {
87  BrokenCopy::broken_assign("WarpedLine");
88  }

References oomph::BrokenCopy::broken_assign().

◆ operator=() [4/6]

void WarpedLine::operator= ( const WarpedLine )
inline

Broken assignment operator.

85  {
86  BrokenCopy::broken_assign("WarpedLine");
87  }

References oomph::BrokenCopy::broken_assign().

◆ operator=() [5/6]

void WarpedLine::operator= ( const WarpedLine )
inline

Broken assignment operator.

64  {
65  BrokenCopy::broken_assign("WarpedLine");
66  }

References oomph::BrokenCopy::broken_assign().

◆ operator=() [6/6]

void WarpedLine::operator= ( const WarpedLine )
inline

Broken assignment operator.

232  {
233  BrokenCopy::broken_assign("WarpedLine");
234  }

References oomph::BrokenCopy::broken_assign().

◆ position() [1/14]

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

Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Forward to steady version

Reimplemented from oomph::GeomObject.

2047  {
2048  position(zeta,r);
2049  }
void position(const Vector< double > &zeta, Vector< double > &r) const
Position vector at Lagrangian coordinate zeta.
Definition: heated_linear_solid_contact_with_gravity.cc:2022
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
r
Definition: UniformPSDSelfTest.py:20

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

◆ position() [2/14]

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

Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Forward to steady version

Reimplemented from oomph::GeomObject.

136  {
137  position(zeta,r);
138  }

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

◆ position() [3/14]

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

Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Forward to steady version

Reimplemented from oomph::GeomObject.

106  {
107  position(zeta,r);
108  }

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

◆ position() [4/14]

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

Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Forward to steady version

Reimplemented from oomph::GeomObject.

107  {
108  position(zeta,r);
109  }

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

◆ position() [5/14]

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

Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Forward to steady version

Reimplemented from oomph::GeomObject.

106  {
107  position(zeta,r);
108  }

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

◆ position() [6/14]

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

Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Forward to steady version

Reimplemented from oomph::GeomObject.

85  {
86  position(zeta,r);
87  }

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

◆ position() [7/14]

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

Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. Forward to steady version

Reimplemented from oomph::GeomObject.

253  {
254  position(zeta,r);
255  }

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

◆ position() [8/14]

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

Position vector at Lagrangian coordinate zeta.

Implements oomph::GeomObject.

2023  {
2024  double zetaa=X_min+zeta[0]*(X_max-X_min);
2025  if (Reversed)
2026  {
2027  zetaa=X_max+zeta[0]*(X_min-X_max);
2028  }
2029 
2030  double alpha=atan((4.0*Ampl)/(1.0+4.0*Ampl*Ampl));
2031  double y_c=1.0+1.0/(2.0*tan(alpha));
2032  double radius=1.0/(2.0*sin(alpha));
2033 
2034  // Position vector for circular shape
2035  r[0] = zetaa;
2036  r[1] = y_c-sqrt(radius*radius-(zetaa-0.5)*(zetaa-0.5));
2037 
2038  // Lift off
2039  r[1]-=Lift_off_amplitude*exp(-Lift_off_alpha*(zetaa-0.5)*(zetaa-0.5));
2040  }
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
double radius() const
Return radius.
Definition: heated_linear_solid_contact_with_gravity.cc:2052
double y_c() const
Return y coordinate of centre.
Definition: heated_linear_solid_contact_with_gravity.cc:2059
RealScalar alpha
Definition: level1_cplx_impl.h:151
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 atan(const bfloat16 &a)
Definition: BFloat16.h:636
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 exp(const bfloat16 &a)
Definition: BFloat16.h:615
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 tan(const bfloat16 &a)
Definition: BFloat16.h:633

References alpha, Ampl, Eigen::bfloat16_impl::atan(), Eigen::bfloat16_impl::exp(), Lift_off_alpha, Lift_off_amplitude, UniformPSDSelfTest::r, radius(), Reversed, sin(), sqrt(), Eigen::bfloat16_impl::tan(), X_max, X_min, y_c(), and Eigen::zeta().

Referenced by PrescribedBoundaryDisplacementProblem< ELEMENT >::actions_before_newton_solve(), and position().

◆ position() [9/14]

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

Position vector at Lagrangian coordinate zeta.

Implements oomph::GeomObject.

112  {
113  double zetaa=X_min+zeta[0]*(X_max-X_min);
114  if (Reversed)
115  {
116  zetaa=X_max+zeta[0]*(X_min-X_max);
117  }
118 
119  double alpha=atan((4.0*Ampl)/(1.0+4.0*Ampl*Ampl));
120  double y_c=1.0+1.0/(2.0*tan(alpha));
121  double radius=1.0/(2.0*sin(alpha));
122 
123  // Position vector for circular shape
124  r[0] = zetaa;
125  r[1] = y_c-sqrt(radius*radius-(zetaa-0.5)*(zetaa-0.5));
126 
127  // Lift off
128  r[1]-=Lift_off_amplitude*exp(-Lift_off_alpha*(zetaa-0.5)*(zetaa-0.5));
129  }

References alpha, Eigen::bfloat16_impl::atan(), Eigen::bfloat16_impl::exp(), UniformPSDSelfTest::r, UniformPSDSelfTest::radius, sin(), sqrt(), Eigen::bfloat16_impl::tan(), RayParam::X_max, RayParam::X_min, and Eigen::zeta().

◆ position() [10/14]

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

Position vector at Lagrangian coordinate zeta.

Implements oomph::GeomObject.

95  {
96  // Position vector
97  r[0] = zeta[0]+5.0*Ampl*zeta[0]*(zeta[0]-1.0)*(zeta[0]-0.7);
98  r[1] = 1.0+Ampl*0.5*(1.0-cos(2.0*MathematicalConstants::Pi*zeta[0]));
99  }
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
double Pi
Definition: two_d_biharmonic.cc:235

References cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, and Eigen::zeta().

◆ position() [11/14]

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

Position vector at Lagrangian coordinate zeta.

Implements oomph::GeomObject.

96  {
97  // Position vector
98  r[0] = zeta[0]+5.0*Ampl*zeta[0]*(zeta[0]-0.4)*(zeta[0]-0.7);
99  r[1] = 1.0+Ampl*0.5*(1.0-cos(2.0*MathematicalConstants::Pi*zeta[0]/0.4));
100  }

References cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, and Eigen::zeta().

◆ position() [12/14]

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

Position vector at Lagrangian coordinate zeta.

Implements oomph::GeomObject.

95  {
96  // Position vector
97  r[0] = zeta[0]+5.0*Ampl*zeta[0]*(zeta[0]-1.0)*(zeta[0]-0.7);
98  r[1] = 1.0+Ampl*0.5*(1.0-cos(2.0*MathematicalConstants::Pi*zeta[0]));
99  }

References cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, and Eigen::zeta().

◆ position() [13/14]

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

Position vector at Lagrangian coordinate zeta.

Implements oomph::GeomObject.

74  {
75  // Position vector
76  r[0] = zeta[0]+5.0*Ampl*zeta[0]*(zeta[0]-1.0)*(zeta[0]-0.7);
77  r[1] = 1.0+Ampl*0.5*(1.0-cos(2.0*MathematicalConstants::Pi*zeta[0]));
78  }

References cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, and Eigen::zeta().

◆ position() [14/14]

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

Position vector at Lagrangian coordinate zeta.

Implements oomph::GeomObject.

242  {
243  // Position vector
244  r[0] = zeta[0]+5.0*Ampl*zeta[0]*(zeta[0]-1.0)*(zeta[0]-0.7);
245  r[1] = 1.0+Ampl*0.5*(1.0-cos(2.0*MathematicalConstants::Pi*zeta[0]));
246  }

References cos(), BiharmonicTestFunctions2::Pi, UniformPSDSelfTest::r, and Eigen::zeta().

◆ radius() [1/2]

double WarpedLine::radius ( ) const
inline

Return radius.

2053  {
2054  double alpha=atan((4.0*Ampl)/(1.0+4.0*Ampl*Ampl));
2055  return 1.0/(2.0*sin(alpha));
2056  }

References alpha, Ampl, Eigen::bfloat16_impl::atan(), and sin().

Referenced by ContactProblem< ELEMENT >::doc_solution(), main(), and position().

◆ radius() [2/2]

double WarpedLine::radius ( ) const
inline

Return radius.

142  {
143  double alpha=atan((4.0*Ampl)/(1.0+4.0*Ampl*Ampl));
144  return 1.0/(2.0*sin(alpha));
145  }

References alpha, Eigen::bfloat16_impl::atan(), and sin().

◆ set_non_reversed() [1/2]

void WarpedLine::set_non_reversed ( )
inline

Local coordinates are not reversed.

2083  {
2084  Reversed=false;
2085  }

References Reversed.

Referenced by ContactProblem< ELEMENT >::create_displ_imposition_elements().

◆ set_non_reversed() [2/2]

void WarpedLine::set_non_reversed ( )
inline

Local coordinates are not reversed.

172  {
173  Reversed=false;
174  }

◆ set_reversed() [1/2]

void WarpedLine::set_reversed ( )
inline

Local coordinates are reversed.

2077  {
2078  Reversed=true;
2079  }

References Reversed.

Referenced by ContactProblem< ELEMENT >::create_displ_imposition_elements().

◆ set_reversed() [2/2]

void WarpedLine::set_reversed ( )
inline

Local coordinates are reversed.

166  {
167  Reversed=true;
168  }

◆ y_c() [1/2]

double WarpedLine::y_c ( ) const
inline

Return y coordinate of centre.

2060  {
2061  double alpha=atan((4.0*Ampl)/(1.0+4.0*Ampl*Ampl));
2062  return 1.0+1.0/(2.0*tan(alpha));
2063  }

References alpha, Ampl, Eigen::bfloat16_impl::atan(), and Eigen::bfloat16_impl::tan().

Referenced by main(), and position().

◆ y_c() [2/2]

double WarpedLine::y_c ( ) const
inline

Return y coordinate of centre.

149  {
150  double alpha=atan((4.0*Ampl)/(1.0+4.0*Ampl*Ampl));
151  return 1.0+1.0/(2.0*tan(alpha));
152  }

References alpha, Eigen::bfloat16_impl::atan(), and Eigen::bfloat16_impl::tan().

Member Data Documentation

◆ Ampl

double WarpedLine::Ampl
private

Amplitude of perturbation.

Referenced by ampl(), position(), radius(), WarpedLine(), and y_c().

◆ Lift_off_alpha

double WarpedLine::Lift_off_alpha
private

Exponential factor for lift off (controls sharpness)

Referenced by lift_off_alpha(), position(), and WarpedLine().

◆ Lift_off_amplitude

double WarpedLine::Lift_off_amplitude
private

Lift off amplitude.

Referenced by lift_off_amplitude(), position(), and WarpedLine().

◆ Reversed

bool WarpedLine::Reversed
private

Reverse?

Referenced by position(), set_non_reversed(), set_reversed(), and WarpedLine().

◆ X_max

double WarpedLine::X_max
private

Max zeta coordinate.

Referenced by position(), and WarpedLine().

◆ X_min

double WarpedLine::X_min
private

Min zeta coordinate.

Referenced by position(), and WarpedLine().


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