|
FEAT 3
Finite Element Analysis Toolbox
|
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::Comm * | get_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... | |
Global NonlinearFunctional wrapper class template.
| LocalNonlinearFunctional_ | The class of the (patch-) local nonlinear functional |
Definition at line 24 of file nonlinear_functional.hpp.
| 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.
| 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.
| 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.
| typedef Gate<LocalVectorTypeL, RowMirrorType_> FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::GateRowType |
Definition at line 47 of file nonlinear_functional.hpp.
| 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.
| 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.
| typedef LocalNonlinearFunctional_::FilterType FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::LocalFilterType |
The local functionals filter type.
Definition at line 37 of file nonlinear_functional.hpp.
| 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.
| 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.
| 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.
| 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.
|
inlineexplicit |
Constructor.
| [in] | row_gate | Gate for rows |
| [in] | col_gate | Gate for columns |
| [in] | nonlinear_functional | The (patch-)local nonlinear functional |
Definition at line 81 of file nonlinear_functional.hpp.
|
inlinevirtual |
Empty virtual destructor.
Definition at line 95 of file nonlinear_functional.hpp.
|
inline |
Gets the number of columns.
Definition at line 303 of file nonlinear_functional.hpp.
|
inline |
Computes the constraint and returns it.
Definition at line 393 of file nonlinear_functional.hpp.
|
inline |
Creates an empty left-vector of the correct size.
Definition at line 171 of file nonlinear_functional.hpp.
References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional, and FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_row_gate.
Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::rows().
|
inline |
Creates an empty right-vector of the correct size.
Definition at line 181 of file nonlinear_functional.hpp.
References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_col_gate, and FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional.
Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::columns().
|
inline |
Computes the functional's value and gradient at the current state.
| [out] | fval | The functional value |
| [out] | grad | The vector receiving the synced gradient vector |
Definition at line 338 of file nonlinear_functional.hpp.
References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional, FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_row_gate, FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_constraint(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_penalty_param(), FEAT::grad, FEAT::Math::sqr(), and FEAT::Global::Gate< LocalVector_, Mirror_ >::sum().
|
inline |
Returns the functional's communicator.
Definition at line 122 of file nonlinear_functional.hpp.
References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_row_gate, and FEAT::Global::Gate< LocalVector_, Mirror_ >::get_comm().
|
inline |
Get the constraint from the local nonlinear functional.
Definition at line 383 of file nonlinear_functional.hpp.
Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::eval_fval_grad().
|
inline |
Get the number of times compute_func() was called.
Definition at line 132 of file nonlinear_functional.hpp.
|
inline |
Get the number of times compute_grad() was called.
Definition at line 142 of file nonlinear_functional.hpp.
|
inline |
Get the number of times compute_hess() was called.
Definition at line 152 of file nonlinear_functional.hpp.
|
inline |
Get the penalty parameter from the local nonlinear functional.
Definition at line 365 of file nonlinear_functional.hpp.
Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::eval_fval_grad().
|
inline |
Functionality that cannot be done in the constructor.
Definition at line 189 of file nonlinear_functional.hpp.
References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_col_gate, FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional, FEAT::Global::Gate< LocalVector_, Mirror_ >::sum(), and FEAT::Global::Gate< LocalVector_, Mirror_ >::sync_0().
|
inline |
Gets the local nonlinear functional.
Definition at line 104 of file nonlinear_functional.hpp.
|
inline |
Gets the local nonlinear functional, const version.
Definition at line 114 of file nonlinear_functional.hpp.
|
inline |
Prepares the operator for evaluation by setting the current state.
| [in] | vec_state | The current state |
| [in,out] | filter | The filter that might be modified by the local functional's prepare |
Definition at line 223 of file nonlinear_functional.hpp.
References FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_col_gate, FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::_nonlinear_functional, FEAT::Global::Vector< LocalVector_, Mirror_ >::local(), FEAT::Global::Gate< LocalVector_, Mirror_ >::sum(), and FEAT::Global::Gate< LocalVector_, Mirror_ >::sync_0().
|
inline |
Resets the evaluation counters.
Definition at line 161 of file nonlinear_functional.hpp.
Referenced by FEAT::Control::Meshopt::HyperelasticityFunctionalControl< DT_, IT_, DomainControl_, Hyperelasticity_ >::optimize().
|
inline |
Gets the number of rows.
Definition at line 319 of file nonlinear_functional.hpp.
|
inline |
Sets the local functional's penalty parameter.
Definition at line 373 of file nonlinear_functional.hpp.
|
protected |
Gate for syncing column vectors.
Definition at line 63 of file nonlinear_functional.hpp.
Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::create_vector_r(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::init(), and FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::prepare().
|
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().
|
protected |
Gate for syncing row vectors.
Definition at line 61 of file nonlinear_functional.hpp.
Referenced by FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::create_vector_l(), FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::eval_fval_grad(), and FEAT::Global::NonlinearFunctional< LocalNonlinearFunctional_, RowMirrorType_, ColMirrorType_ >::get_comm().
|
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.
|
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.