FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ > Class Template Reference

Global NonlinearFunctional wrapper class template. More...

#include <nonlinear_functional.hpp>

Public Types

typedef LocalNonlinearFunctional_::DataType DataType
 Floating point data type of the local functional. More...
 
typedef Filter< LocalFilterType, RowMirrorType_ > FilterType
 The associated global filter type. More...
 
typedef Gate< LocalVectorTypeR, ColMirrorType_ > GateColType
 Global Gate for right-vectors. More...
 
typedef Gate< LocalVectorTypeL, RowMirrorType_ > GateRowType
 Global Gate for left-vectors. More...
 
typedef VectorTypeL GradientType
 The a gradient vector is the output of the operators compute_grad() function and thus a left-vector. More...
 
typedef LocalNonlinearFunctional_::IndexType IndexType
 Index type of the local functional. More...
 
typedef LocalNonlinearFunctional_::FilterType LocalFilterType
 The local functionals filter type. More...
 
typedef LocalNonlinearFunctional_::VectorTypeL LocalVectorTypeL
 The local functionals left-vector type. More...
 
typedef LocalNonlinearFunctional_::VectorTypeR LocalVectorTypeR
 The local functionals right-vector type. More...
 
typedef Vector< LocalVectorTypeL, RowMirrorType_ > VectorTypeL
 The associated global left-vector type. More...
 
typedef Vector< LocalVectorTypeR, ColMirrorType_ > VectorTypeR
 The associated global right-vector type. More...
 

Public Member Functions

 NonlinearFunctional ()=delete
 Explicitly delete default constructor.
 
 NonlinearFunctional (const NonlinearFunctional &)=delete
 Explicitly delete copy constructor.
 
 NonlinearFunctional (GateRowType *row_gate, GateColType *col_gate, LocalNonlinearFunctional_ &nonlinear_functional)
 Constructor. More...
 
virtual ~NonlinearFunctional ()
 Empty virtual destructor. More...
 
Index columns ()
 Gets the number of columns. More...
 
DataType compute_constraint ()
 Computes the constraint and returns it. More...
 
VectorTypeL create_vector_l () const
 Creates an empty left-vector of the correct size. More...
 
VectorTypeR create_vector_r () const
 Creates an empty right-vector of the correct size. More...
 
void eval_fval_grad (DataType &fval, VectorTypeL &grad)
 Computes the functional's value and gradient at the current state. More...
 
const Dist::Commget_comm () const
 Returns the functional's communicator. More...
 
DataType get_constraint ()
 Get the constraint from the local nonlinear functional. More...
 
Index get_num_func_evals () const
 Get the number of times compute_func() was called. More...
 
Index get_num_grad_evals () const
 Get the number of times compute_grad() was called. More...
 
Index get_num_hess_evals () const
 Get the number of times compute_hess() was called. More...
 
DataType get_penalty_param () const
 Get the penalty parameter from the local nonlinear functional. More...
 
void init ()
 Functionality that cannot be done in the constructor. More...
 
LocalNonlinearFunctional_ & local ()
 Gets the local nonlinear functional. More...
 
const LocalNonlinearFunctional_ & local () const
 Gets the local nonlinear functional, const version. More...
 
void prepare (const VectorTypeR &vec_state, FilterType &filter)
 Prepares the operator for evaluation by setting the current state. More...
 
void reset_num_evals ()
 Resets the evaluation counters. More...
 
Index rows ()
 Gets the number of rows. More...
 
void set_penalty_param (const DataType fac)
 Sets the local functional's penalty parameter. More...
 

Static Public Attributes

static constexpr int BlockHeight = LocalNonlinearFunctional_::BlockHeight
 The global nonlinear functional's Blockheight ist the same as the local nonlinear functional's. More...
 
static constexpr int BlockWidth = LocalNonlinearFunctional_::BlockWidth
 The global nonlinear functional's Blockwidth ist the same as the local nonlinear functional's. More...
 

Protected Attributes

GateColType_col_gate
 Gate for syncing column vectors. More...
 
LocalNonlinearFunctional_ & _nonlinear_functional
 The underlying local nonlinear functional. More...
 
GateRowType_row_gate
 Gate for syncing row vectors. More...
 

Detailed Description

template<typename LocalNonlinearFunctional_, typename RowMirrorType_, typename ColMirrorType_>
class FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >

Global NonlinearFunctional wrapper class template.

Template Parameters
LocalNonlinearFunctional_The class of the (patch-) local nonlinear functional
Author
Jordi Paul

Definition at line 24 of file nonlinear_functional.hpp.

Member Typedef Documentation

◆ DataType

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef LocalNonlinearFunctional_::DataType FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::DataType

Floating point data type of the local functional.

Definition at line 28 of file nonlinear_functional.hpp.

◆ FilterType

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef Filter<LocalFilterType, RowMirrorType_> FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::FilterType

The associated global filter type.

Definition at line 44 of file nonlinear_functional.hpp.

◆ GateColType

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef Gate<LocalVectorTypeR, ColMirrorType_> FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::GateColType

Global Gate for right-vectors.

Definition at line 49 of file nonlinear_functional.hpp.

◆ GateRowType

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef Gate<LocalVectorTypeL, RowMirrorType_> FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::GateRowType

Global Gate for left-vectors.

Definition at line 47 of file nonlinear_functional.hpp.

◆ GradientType

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef VectorTypeL FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::GradientType

The a gradient vector is the output of the operators compute_grad() function and thus a left-vector.

Definition at line 52 of file nonlinear_functional.hpp.

◆ IndexType

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef LocalNonlinearFunctional_::IndexType FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::IndexType

Index type of the local functional.

Definition at line 30 of file nonlinear_functional.hpp.

◆ LocalFilterType

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef LocalNonlinearFunctional_::FilterType FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::LocalFilterType

The local functionals filter type.

Definition at line 37 of file nonlinear_functional.hpp.

◆ LocalVectorTypeL

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef LocalNonlinearFunctional_::VectorTypeL FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::LocalVectorTypeL

The local functionals left-vector type.

Definition at line 33 of file nonlinear_functional.hpp.

◆ LocalVectorTypeR

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef LocalNonlinearFunctional_::VectorTypeR FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::LocalVectorTypeR

The local functionals right-vector type.

Definition at line 35 of file nonlinear_functional.hpp.

◆ VectorTypeL

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef Vector<LocalVectorTypeL, RowMirrorType_> FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::VectorTypeL

The associated global left-vector type.

Definition at line 40 of file nonlinear_functional.hpp.

◆ VectorTypeR

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
typedef Vector<LocalVectorTypeR, ColMirrorType_> FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::VectorTypeR

The associated global right-vector type.

Definition at line 42 of file nonlinear_functional.hpp.

Constructor & Destructor Documentation

◆ NonlinearFunctional()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::NonlinearFunctional ( GateRowType row_gate,
GateColType col_gate,
LocalNonlinearFunctional_ &  nonlinear_functional 
)
inlineexplicit

Constructor.

Parameters
[in]row_gateGate for rows
[in]col_gateGate for columns
[in]nonlinear_functionalThe (patch-)local nonlinear functional

Definition at line 81 of file nonlinear_functional.hpp.

◆ ~NonlinearFunctional()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
virtual FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::~NonlinearFunctional ( )
inlinevirtual

Empty virtual destructor.

Definition at line 95 of file nonlinear_functional.hpp.

Member Function Documentation

◆ columns()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
Index FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::columns ( )
inline

Gets the number of columns.

Warning
In parallel, this requires communication and is very expensive, so use sparingly!
Returns
The number of colums

Definition at line 303 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::create_vector_r().

◆ compute_constraint()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
DataType FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::compute_constraint ( )
inline

Computes the constraint and returns it.

Returns
The global nonlinear functional's constraint

Definition at line 393 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.

◆ create_vector_l()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
VectorTypeL FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::create_vector_l ( ) const
inline

◆ create_vector_r()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
VectorTypeR FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::create_vector_r ( ) const
inline

◆ eval_fval_grad()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
void FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::eval_fval_grad ( DataType fval,
VectorTypeL grad 
)
inline

◆ get_comm()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
const Dist::Comm * FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_comm ( ) const
inline

◆ get_constraint()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
DataType FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_constraint ( )
inline

Get the constraint from the local nonlinear functional.

Returns
A copy of the global nonlinear functional's constraint

Definition at line 383 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.

Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::eval_fval_grad().

◆ get_num_func_evals()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
Index FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_num_func_evals ( ) const
inline

Get the number of times compute_func() was called.

Returns
The number of functional evaluations

Definition at line 132 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.

◆ get_num_grad_evals()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
Index FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_num_grad_evals ( ) const
inline

Get the number of times compute_grad() was called.

Returns
The number of gradient evaluations

Definition at line 142 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.

◆ get_num_hess_evals()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
Index FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_num_hess_evals ( ) const
inline

Get the number of times compute_hess() was called.

Returns
The number of Hessian evaluations

Definition at line 152 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.

◆ get_penalty_param()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
DataType FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_penalty_param ( ) const
inline

Get the penalty parameter from the local nonlinear functional.

Returns
A copy of the local nonlinear functional's penalty parameter

Definition at line 365 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.

Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::eval_fval_grad().

◆ init()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
void FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::init ( )
inline

◆ local() [1/2]

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
LocalNonlinearFunctional_ & FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::local ( )
inline

Gets the local nonlinear functional.

Returns
A reference to the underlying local nonlinear functional

Definition at line 104 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.

◆ local() [2/2]

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
const LocalNonlinearFunctional_ & FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::local ( ) const
inline

Gets the local nonlinear functional, const version.

Returns
A const reference to the underlying local nonlinear functional

Definition at line 114 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.

◆ prepare()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
void FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::prepare ( const VectorTypeR vec_state,
FilterType filter 
)
inline

◆ reset_num_evals()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
void FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::reset_num_evals ( )
inline

◆ rows()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
Index FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::rows ( )
inline

Gets the number of rows.

Warning
In parallel, this requires communication and is very expensive, so use sparingly!
Returns
The number of colums

Definition at line 319 of file nonlinear_functional.hpp.

References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::create_vector_l().

◆ set_penalty_param()

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
void FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::set_penalty_param ( const DataType  fac)
inline

Member Data Documentation

◆ _col_gate

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
GateColType* FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_col_gate
protected

◆ _nonlinear_functional

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
LocalNonlinearFunctional_& FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional
protected

The underlying local nonlinear functional.

Definition at line 65 of file nonlinear_functional.hpp.

Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::compute_constraint(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::create_vector_l(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::create_vector_r(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::eval_fval_grad(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_constraint(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_num_func_evals(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_num_grad_evals(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_num_hess_evals(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_penalty_param(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::init(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::local(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::prepare(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::reset_num_evals(), and FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::set_penalty_param().

◆ _row_gate

◆ BlockHeight

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
constexpr int FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::BlockHeight = LocalNonlinearFunctional_::BlockHeight
staticconstexpr

The global nonlinear functional's Blockheight ist the same as the local nonlinear functional's.

Definition at line 55 of file nonlinear_functional.hpp.

◆ BlockWidth

template<typename LocalNonlinearFunctional_ , typename RowMirrorType_ , typename ColMirrorType_ >
constexpr int FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::BlockWidth = LocalNonlinearFunctional_::BlockWidth
staticconstexpr

The global nonlinear functional's Blockwidth ist the same as the local nonlinear functional's.

Definition at line 57 of file nonlinear_functional.hpp.


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