OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
olb::opti::projection::Baron< T > Struct Template Reference

#include <projection.h>

+ Inheritance diagram for olb::opti::projection::Baron< T >:
+ Collaboration diagram for olb::opti::projection::Baron< T >:

Public Member Functions

project (T x) const override
 
derivative (T x) const override
 
inverse (T x) const override
 

Public Attributes

const T pi {T(4) * util::atan(T(1))}
 

Detailed Description

template<typename T>
struct olb::opti::projection::Baron< T >

Definition at line 104 of file projection.h.

Member Function Documentation

◆ derivative()

template<typename T >
T olb::opti::projection::Baron< T >::derivative ( T x) const
inlineoverridevirtual

Implements olb::opti::projection::Base< T >.

Definition at line 112 of file projection.h.

112 {
113 return (T(1) + util::sin((x-T(0.5))*pi))
114 * util::cos((x-T(0.5))*pi)
115 * pi * T(0.5);
116 }
ADf< T, DIM > sin(const ADf< T, DIM > &a)
Definition aDiff.h:569
ADf< T, DIM > cos(const ADf< T, DIM > &a)
Definition aDiff.h:578

References olb::util::cos(), olb::opti::projection::Baron< T >::pi, and olb::util::sin().

+ Here is the call graph for this function:

◆ inverse()

template<typename T >
T olb::opti::projection::Baron< T >::inverse ( T x) const
inlineoverridevirtual

Implements olb::opti::projection::Base< T >.

Definition at line 117 of file projection.h.

117 {
118 return T(0.5) + util::asin(T(2)*x-T(1)) / pi;
119 }
ADf< T, DIM > asin(const ADf< T, DIM > &a)
Definition aDiff.h:596

References olb::util::asin(), and olb::opti::projection::Baron< T >::pi.

+ Here is the call graph for this function:

◆ project()

template<typename T >
T olb::opti::projection::Baron< T >::project ( T x) const
inlineoverridevirtual

Implements olb::opti::projection::Base< T >.

Definition at line 108 of file projection.h.

108 {
109 const T y = T(0.5) + T(0.5) * util::sin((x-T(0.5))*pi);
110 return y*y;
111 }

References olb::opti::projection::Baron< T >::pi, and olb::util::sin().

+ Here is the call graph for this function:

Member Data Documentation

◆ pi

template<typename T >
const T olb::opti::projection::Baron< T >::pi {T(4) * util::atan(T(1))}

Definition at line 106 of file projection.h.

106{T(4) * util::atan(T(1))};
ADf< T, DIM > atan(const ADf< T, DIM > &a)
Definition aDiff.h:614

The documentation for this struct was generated from the following file: