| 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.