Reference documentation for deal.II version 9.2.0
|
#include <deal.II/base/incremental_function.h>
Public Types | |
using | time_type = typename Function< dim, RangeNumberType >::time_type |
Public Types inherited from Function< dim, double > | |
using | time_type = typename FunctionTime< typename numbers::NumberTraits< double >::real_type >::time_type |
Public Types inherited from FunctionTime< numbers::NumberTraits< double >::real_type > | |
using | time_type = numbers::NumberTraits< double >::real_type |
Public Member Functions | |
IncrementalFunction (Function< dim, RangeNumberType > &base) | |
virtual RangeNumberType | value (const Point< dim > &p, const unsigned int component=0) const override |
virtual void | vector_value (const Point< dim > &p, Vector< RangeNumberType > &values) const override |
void | set_decrement (const time_type delta_t) |
Public Member Functions inherited from Function< dim, double > | |
Function (const unsigned int n_components=1, const time_type initial_time=0.0) | |
Function (const Function &f)=default | |
virtual | ~Function () override=0 |
Function & | operator= (const Function &f) |
virtual void | vector_value (const Point< dim > &p, Vector< double > &values) const |
virtual void | value_list (const std::vector< Point< dim >> &points, std::vector< double > &values, const unsigned int component=0) const |
virtual void | vector_value_list (const std::vector< Point< dim >> &points, std::vector< Vector< double >> &values) const |
virtual void | vector_values (const std::vector< Point< dim >> &points, std::vector< std::vector< double >> &values) const |
virtual Tensor< 1, dim, double > | gradient (const Point< dim > &p, const unsigned int component=0) const |
virtual void | vector_gradient (const Point< dim > &p, std::vector< Tensor< 1, dim, double >> &gradients) const |
virtual void | gradient_list (const std::vector< Point< dim >> &points, std::vector< Tensor< 1, dim, double >> &gradients, const unsigned int component=0) const |
virtual void | vector_gradients (const std::vector< Point< dim >> &points, std::vector< std::vector< Tensor< 1, dim, double >>> &gradients) const |
virtual void | vector_gradient_list (const std::vector< Point< dim >> &points, std::vector< std::vector< Tensor< 1, dim, double >>> &gradients) const |
virtual double | laplacian (const Point< dim > &p, const unsigned int component=0) const |
virtual void | vector_laplacian (const Point< dim > &p, Vector< double > &values) const |
virtual void | laplacian_list (const std::vector< Point< dim >> &points, std::vector< double > &values, const unsigned int component=0) const |
virtual void | vector_laplacian_list (const std::vector< Point< dim >> &points, std::vector< Vector< double >> &values) const |
virtual SymmetricTensor< 2, dim, double > | hessian (const Point< dim > &p, const unsigned int component=0) const |
virtual void | vector_hessian (const Point< dim > &p, std::vector< SymmetricTensor< 2, dim, double >> &values) const |
virtual void | hessian_list (const std::vector< Point< dim >> &points, std::vector< SymmetricTensor< 2, dim, double >> &values, const unsigned int component=0) const |
virtual void | vector_hessian_list (const std::vector< Point< dim >> &points, std::vector< std::vector< SymmetricTensor< 2, dim, double >>> &values) const |
std::size_t | memory_consumption () const |
Public Member Functions inherited from FunctionTime< numbers::NumberTraits< double >::real_type > | |
FunctionTime (const numbers::NumberTraits< double >::real_type initial_time=numbers::NumberTraits< double >::real_type(0.0)) | |
virtual | ~FunctionTime ()=default |
numbers::NumberTraits< double >::real_type | get_time () const |
virtual void | set_time (const numbers::NumberTraits< double >::real_type new_time) |
virtual void | advance_time (const numbers::NumberTraits< double >::real_type delta_t) |
Public Member Functions inherited from Subscriptor | |
Subscriptor () | |
Subscriptor (const Subscriptor &) | |
Subscriptor (Subscriptor &&) noexcept | |
virtual | ~Subscriptor () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
template<typename StreamType > | |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Static Public Attributes | |
static const unsigned int | dimension = dim |
Static Public Attributes inherited from Function< dim, double > | |
static const unsigned int | dimension |
Private Attributes | |
Function< dim, RangeNumberType > & | base |
time_type | delta_t |
Vector< RangeNumberType > | values_old |
Threads::Mutex | mutex |
Additional Inherited Members | |
Static Public Member Functions inherited from Subscriptor | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
Public Attributes inherited from Function< dim, double > | |
const unsigned int | n_components |
This class represents an incremental function. That is, given an arbitrary function f
, this class will return f(t) - f(t - delta_t)
, where f(t)
denotes the function evaluated at time t
and, likewise, f(t - delta_t)
denotes the function evaluated at time t - delta_t
. The decrement delta_t
is set by the method set_decrement(). The main application of this class is to transform a given Dirichlet boundary condition function into incremental form, as is required by some implementations of non-linear solution schemes.
Definition at line 50 of file incremental_function.h.
using Functions::IncrementalFunction< dim, RangeNumberType >::time_type = typename Function<dim, RangeNumberType>::time_type |
The scalar-valued real type used for representing time.
Definition at line 62 of file incremental_function.h.
Functions::IncrementalFunction< dim, RangeNumberType >::IncrementalFunction | ( | Function< dim, RangeNumberType > & | base | ) |
Constructor which wraps a given function base
.
base
and will call base.set_time()
during evaluation in order to evaluate the base
class at any arbitrary time. It is guaranteed that the temporal state of base
is returned to its original settings after each function evaluation in this class. Definition at line 26 of file incremental_function.cc.
|
overridevirtual |
Return the value of the function at the given point.
Unless there is only one component (i.e. the function is scalar), you should state the component you want to have evaluated. By default, the value of the first component is computed.
Reimplemented from Function< dim, double >.
Definition at line 50 of file incremental_function.cc.
|
overridevirtual |
Return all components of a vector-valued function at a given point.
It is required that the values
vector have the correct size before this function is called.
Definition at line 79 of file incremental_function.cc.
void Functions::IncrementalFunction< dim, RangeNumberType >::set_decrement | ( | const time_type | delta_t | ) |
Set the time decrement.
It is expected that this value be positive.
Definition at line 38 of file incremental_function.cc.
|
static |
Export the value of the template parameter as a static member constant. This is sometimes useful in the context of template programming.
Definition at line 57 of file incremental_function.h.
|
private |
A reference to the function being wrapped.
Definition at line 108 of file incremental_function.h.
|
private |
The time decrement.
Definition at line 113 of file incremental_function.h.
|
mutableprivate |
An auxiliary vector to store values.
Definition at line 118 of file incremental_function.h.
|
mutableprivate |
Thread mutex for supporting evaluation in multi-threaded contexts.
Definition at line 123 of file incremental_function.h.