FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Analytic::Common Namespace Reference

Analytic Common namespace. More...

Classes

class  ConstantFunction
 Constant Analytic function. More...
 
class  ConstantVectorFunction
 Constant vector valued Analytic function. More...
 
class  CornerSingularity2D
 Singularity function for a 2D reentry corner with homogeneous boundary conditions. More...
 
class  CornerSingularity2DRadial
 radial version of the CornerSingularity function... should be used with the PolarCoordinateWrapper More...
 
class  CosineTensorStatic
 Cosine-Tensor Static function. More...
 
class  DFG95SteadyInflowFunction
 Steady-State inflow function used in DFG95 flow-around-a-cylinder benchmarks. More...
 
class  ExpBubbleScalarStatic
 Exponential-Bubble scalar Static function. More...
 
class  ExpScalarStatic
 
class  ExpScalarStatic< Half >
 
class  Frankes3DVariantFunction
 3D Version of Franke's Function More...
 
class  FrankesFunction
 Saddle-Point-Gauss type interpolation test function. More...
 
class  GuermondStokesSol
 Time dependent divergence free velocity field. More...
 
class  GuermondStokesSolPressure
 Pressure to GuermondStokesSol. More...
 
class  GuermondStokesSolRhs
 Time dependent divergence free velocity field. More...
 
class  HarmonicShellFunction
 Harmonic shell function. More...
 
class  MinOfTwoFunctions
 Function representing the minimum of two analytic functions. More...
 
class  ParProfileBase
 2D Parabolic Profile function base-class More...
 
class  ParProfileScalar
 2D Scalar Parabolic Profile function More...
 
class  ParProfileVector
 2D Vector-Valued Parabolic Profile function More...
 
class  PoiseuillePipeFlow
 Parabolic Poiseuille Pipe-Flow velocity field. More...
 
class  PolynomialFunction1D
 1D Polynomial function class template More...
 
class  Q2BubbleScalarStatic
 Q2-bubble scalar Static function. More...
 
class  RigidBodyVortexPres2D
 Rigid-Body Vortex pressure function. More...
 
class  RigidBodyVortexVelo2D
 Rigid-Body Vortex velocity field. More...
 
class  SineRingVortexPres2D
 Sine-Vortex pressure function on the 2D ring domain with distance [1/2,1] around (0,0) More...
 
class  SineRingVortexRHS2D
 Sine-Vortex RHS field on the 2D ring domain with distance [1/2,1] around (0,0) More...
 
class  SineRingVortexVelo2D
 Sine-Vortex velocity field on the 2D ring domain with distance [1/2,1] around (0,0) More...
 
class  SineTensorStatic
 Sine-Tensor Static function. More...
 
class  SinYT0
 Time dependent divergence free velocity field. More...
 
class  SinYT0StokesRhs
 Time dependent divergence free velocity field. More...
 
class  SphereCapFunction
 Sphere-Cap Function on the 2D unit circle / 3D unit ball. More...
 
class  SphereSinBubbleFunction
 Sphere-Normalized Sine-Bubble Function. More...
 
class  StandingVortexFunction2D
 Standing-Vortex function in 2D. More...
 
class  TaylorGreenVortexPres2D
 Taylor-Green Vortex pressure function. More...
 
class  TaylorGreenVortexVelo2D
 Taylor-Green Vortex velocity field. More...
 
class  TensorStatic
 Wrapper class for Tensor-Product scalar static functions. More...
 
class  XYPlaneRotation
 Velocity field for a rigid body rotation in the x,y plane. More...
 
class  YZPlaneParabolic
 Velocity field for a parabolic profile in the y,z plane, constant in x. More...
 

Typedefs

using BazaraaShettyFunction = StaticWrapperFunction< 2, BazaraaShettyStatic, true, true, true >
 Bazaraa/Shetty function. More...
 
template<typename DT_ >
using CornerSingluratity2DSimple = PolarCoordinate< CornerSingularity2DRadial< DT_ > >
 
template<int dim_>
using CosineWaveFunction = StaticWrapperFunction< dim_, CosineWaveStatic, true, true, true >
 *‍/ More...
 
template<int dim_>
using ExpBubbleFunction = StaticWrapperFunction< dim_, ExpBubbleStatic, true, true, true >
 *‍/ More...
 
template<int dim_>
using ExpFunction = Analytic::StaticWrapperFunction< dim_, ExpStatic, true, true, true >
 *‍/ More...
 
using GoldsteinPriceFunction = StaticWrapperFunction< 2, GoldsteinPriceStatic, true, true, true >
 *‍/ More...
 
template<int dim_>
using HeavisideFunction = StaticWrapperFunction< dim_, HeavisideStatic, true, false, false >
 *‍/ More...
 
template<int dim_>
using HeavisideRegFunction = StaticWrapperFunction< dim_, HeavisideRegStatic, true, false, false >
 *‍/ More...
 
using HimmelblauFunction = StaticWrapperFunction< 2, HimmelblauStatic, true, true, true >
 *‍/ More...
 
template<int dim_>
using Q2BubbleFunction = StaticWrapperFunction< dim_, Q2BubbleStatic, true, true, true >
 *‍/ More...
 
using RosenbrockFunction = StaticWrapperFunction< 2, RosenbrockStatic, true, true, true >
 *‍/ More...
 
template<int dim_>
using SineBubbleFunction = StaticWrapperFunction< dim_, SineBubbleStatic, true, true, true >
 *‍/ More...
 

Detailed Description

Analytic Common namespace.

This namespace encapsulated commonly used functions, which are often used in standard benchmark problems.

Typedef Documentation

◆ BazaraaShettyFunction

using FEAT::Analytic::Common::BazaraaShettyFunction = typedef StaticWrapperFunction<2, BazaraaShettyStatic, true, true, true>

Bazaraa/Shetty function.

This class implements the AnalyticFunction interface representing the function

\[ u(x,y) = (x - 2)^4 + (x - 2 y)^2 \]

This function has a global miminum in \( x_0 = (2, 1)^T, u(x_0) = 0 \) and is frequently used for testing optimization algorithms because the hessian at the minimal point is singular.

Author
Jordi Paul

Definition at line 1541 of file common.hpp.

◆ CornerSingluratity2DSimple

Definition at line 4273 of file common.hpp.

◆ CosineWaveFunction

template<int dim_>
using FEAT::Analytic::Common::CosineWaveFunction = typedef StaticWrapperFunction<dim_, CosineWaveStatic, true, true, true>

*‍/

Cosine-Wave Analytic function

This class implements the AnalyticFunction interface representing the function

  • 1D: u(x) = cos(pi*x)
  • 2D: u(x,y) = cos(pi*x) * cos(pi*y)
  • 3D: u(x,y,z) = cos(pi*x) * cos(pi*y) * cos(pi*z)

This class supports function values, gradient and hessians for all dimensions.

This function fulfills homogeneous Neumann boundary conditions and has vanishing integral mean on the unit-cube domain.

Author
Peter Zajac

Definition at line 567 of file common.hpp.

◆ ExpBubbleFunction

template<int dim_>
using FEAT::Analytic::Common::ExpBubbleFunction = typedef StaticWrapperFunction<dim_, ExpBubbleStatic, true, true, true>

*‍/

Exponential-Bubble Analytic function

This class implements the AnalyticFunction interface representing the function

  • 1D: u(x) = (exp(-(2*x - 1)^2) - exp(-1)) / (1 - exp(-1))
  • 2D: u(x,y) = u(x) * u(y)
  • 3D: u(x,y,z) = u(x) * u(y) * u(z)

This class supports function values, gradient and hessians for all dimensions.

This function fulfills homogeneous Dirichlet boundary conditions on the unit-cube domain.

Author
Peter Zajac

Definition at line 622 of file common.hpp.

◆ ExpFunction

template<int dim_>
using FEAT::Analytic::Common::ExpFunction = typedef Analytic::StaticWrapperFunction<dim_, ExpStatic, true, true, true>

*‍/

Exponential Analytic function

This class implements the AnalyticFunction interface representing the function

  • 1D: u(x) = (exp(10) - exp(10*x^2)) / (exp(10) - 1)
  • 2D: u(x,y) = u(x)*u(y)
  • 3D: u(x,y,z) = u(x)*u(y)*u(z)

This class supports function values, gradient and hessians for all dimensions.

Definition at line 2056 of file common.hpp.

◆ GoldsteinPriceFunction

using FEAT::Analytic::Common::GoldsteinPriceFunction = typedef StaticWrapperFunction<2, GoldsteinPriceStatic, true, true, true>

*‍/

*‍/

Goldstein-Price function

Template Parameters
DataType_Floating point precision

This class implements the StaticFunction interface representing the function

\[ u(x,y) =(1+(1+x+y)^2 * (19 - 14*x+3*x^2-14*y+6*x*y+3*y^2)) *(30 + (2*x-3*y)^2 * (18 - 32*x +12*x^2 + 48*y - 36*x*y + 27*y^2)) \]

This function has a global miminum in \( x_0 = (0, -1)^T, u(x_0) = 3 \).

Author
Jordi Paul

Definition at line 1527 of file common.hpp.

◆ HeavisideFunction

template<int dim_>
using FEAT::Analytic::Common::HeavisideFunction = typedef StaticWrapperFunction<dim_, HeavisideStatic, true, false, false>

*‍/

Heaviside function

This class implements the AnalyticFunction interface representing the function

\[ u(x) = H(x) = \begin{cases} 0, & x < 0 \\ 1, & x \geq 0 \end{cases} \]

in \( 1D \) and

\[ u(x,y) = H(x) H(y), u(x,y,z) = H(x) H(y) H(z) \]

in \( 2D, 3D \) respectively.

Author
Jordi Paul

Definition at line 1048 of file common.hpp.

◆ HeavisideRegFunction

template<int dim_>
using FEAT::Analytic::Common::HeavisideRegFunction = typedef StaticWrapperFunction<dim_, HeavisideRegStatic, true, false, false>

*‍/

Regularized Heaviside static function

This class implements the AnalyticFunction interface representing the function

\[ u(x) = H(x) = \begin{cases} 0, & x < 0 \\ 1, & 2 (\cosh(x) - 1) \geq 0 \end{cases} \]

in \( 1D \) and

\[ u(x,y) = H(x)*H(y), u(x,y,z) = H(x)*H(y)*H(z) \]

in \( 2D, 3D \) respectively.

Author
Jordi Paul

Definition at line 1238 of file common.hpp.

◆ HimmelblauFunction

using FEAT::Analytic::Common::HimmelblauFunction = typedef StaticWrapperFunction<2, HimmelblauStatic, true, true, true>

*‍/

Himmelblau function

This class implements the AnalyticFunction interface representing the function

\[ u(x,y) = (x^2 + y^2 - 11)^2 + (x + y^2 - 7)^2 \]

The function is nonconvex and has 4 local minima at

\begin{align*} x_0 & \approx (-3.77931025337774689189076584129, -3.28318599128616941226600051437)^T \\ x_1 & \approx (-2.80511808695274485305357239809, 3.13131251825057296580430072341)^T \\ x_2 & = (3, 2)^T \\ x_3 & \approx (3.58442834033049174494433823938, -1.84812652696440355353830020904)^T. \end{align*}

with \( \forall i = 0, \dots, 3: u(x_i) = 0 \).

It is often used for testing optimization algorithms because of the nonconvexity and existence of a local maximum in \( x_4 \approx ( -0.270845, -0.93039)^T \) and several saddle points.

Author
Jordi Paul

Definition at line 1639 of file common.hpp.

◆ Q2BubbleFunction

template<int dim_>
using FEAT::Analytic::Common::Q2BubbleFunction = typedef StaticWrapperFunction<dim_, Q2BubbleStatic, true, true, true>

*‍/

Q2-Bubble Analytic function

This class implements the AnalyticFunction interface representing the function

  • 1D: u(x) = 4*x*(1-x)
  • 2D: u(x,y) = 16*x*(1-x)*y*(1-y)
  • 3D: u(x,y,z) = 64*x*(1-x)*y*(1-y)*z*(1-z)

This class supports function values, gradient and hessians for all dimensions.

This function fulfills homogeneous Dirichlet boundary conditions on the unit-cube domain.

Author
Peter Zajac

Definition at line 677 of file common.hpp.

◆ RosenbrockFunction

using FEAT::Analytic::Common::RosenbrockFunction = typedef StaticWrapperFunction<2, RosenbrockStatic, true, true, true>

*‍/

Rosenbrock function

This class implements the AnalyticFunction interface representing the function

\[ u(x,y) = 100(y-x^2)^2 + (1-x)^2. \]

The function has a global minimum in \( x_0 = (1, 1)^T\) and a "steep valley" along the parabola \( y = x^2 \). This is a great challenge to descend-based optimization algorithms like steepest descent or nonlinear CG and the reason it is frequently used as a target function to test such algorithms.

Author
Jordi Paul

Definition at line 1705 of file common.hpp.

◆ SineBubbleFunction

template<int dim_>
using FEAT::Analytic::Common::SineBubbleFunction = typedef StaticWrapperFunction<dim_, SineBubbleStatic, true, true, true>

*‍/

Sine-Bubble Analytic function

This class implements the AnalyticFunction interface representing the function

  • 1D: u(x) = sin(pi*x)
  • 2D: u(x,y) = sin(pi*x) * sin(pi*y)
  • 3D: u(x,y,z) = sin(pi*x) * sin(pi*y) * sin(pi*z)

This class supports function values, gradient and hessians for all dimensions.

This function fulfills homogeneous Dirichlet boundary conditions on the unit-cube domain.

Author
Peter Zajac

Definition at line 376 of file common.hpp.