Loading...
Searching...
No Matches
dolfin::GenericFunction Class Referenceabstract

`#include <GenericFunction.h>`

Inheritance diagram for dolfin::GenericFunction:
[legend]
Collaboration diagram for dolfin::GenericFunction:
[legend]

## Public Member Functions

| GenericFunction ()
| Constructor.
virtual | ~GenericFunction ()
| Destructor.
virtual std::size_t | value_rank () const =0
| Return value rank.
virtual std::size_t | value_dimension (std::size_t i) const =0
| Return value dimension for given axis.
virtual std::vector< std::size_t > | value_shape () const =0
| Return value shape.
virtual void | eval (Array< double > &values, const Array< double > &x, const ufc::cell &cell) const
| Evaluate at given point in given cell (deprecated).
virtual void | eval (Array< double > &values, const Array< double > &x) const
| Evaluate at given point (deprecated).
virtual void | eval (Eigen::Ref< Eigen::VectorXd > values, Eigen::Ref< const Eigen::VectorXd > x, const ufc::cell &cell) const
| Evaluate at given point in given cell.
virtual void | eval (Eigen::Ref< Eigen::VectorXd > values, Eigen::Ref< const Eigen::VectorXd > x) const
| Evaluate at given point.
virtual void | restrict (double *w, const FiniteElement &element, const Cell &dolfin_cell, const double *coordinate_dofs, const ufc::cell &ufc_cell) const =0
| Restrict function to local cell (compute expansion coefficients w).
virtual void | compute_vertex_values (std::vector< double > &vertex_values, const Mesh &mesh) const =0
| Compute values at all mesh vertices.
virtual void | update () const
| Update off-process ghost coefficients.
double | operator() (double x) const
| Evaluation at given point (scalar function).
double | operator() (double x, double y) const
| Evaluation at given point (scalar function).
double | operator() (double x, double y, double z) const
| Evaluation at given point (scalar function).
double | operator() (const Point &p) const
| Evaluation at given point (scalar function).
void | operator() (Array< double > &values, double x) const
| Evaluation at given point (vector-valued function).
void | operator() (Array< double > &values, double x, double y) const
| Evaluation at given point (vector-valued function).
void | operator() (Array< double > &values, double x, double y, double z) const
| Evaluation at given point (vector-valued function).
void | operator() (Array< double > &values, const Point &p) const
| Evaluation at given point (vector-valued function).
std::size_t | value_size () const
| Evaluation at given point.
virtual void | evaluate (double *values, const double *coordinates, const ufc::cell &cell) const override
virtual std::shared_ptr< const FunctionSpace > | function_space () const =0
| Pointer to FunctionSpace, if appropriate, otherwise NULL.
Public Member Functions inherited from dolfin::Variable
| Variable ()
| Create unnamed variable.
| Variable (const std::string name, const std::string label)
| Create variable with given name and label.
| Variable (const Variable &variable)
| Copy constructor.
virtual | ~Variable ()
| Destructor.
const Variable & | operator= (const Variable &variable)
| Assignment operator.
void | rename (const std::string name, const std::string label)
| Rename variable.
std::string | name () const
| Return name.
std::string | label () const
| Return label (description).
std::size_t | id () const
virtual std::string | str (bool verbose) const
| Return informal string representation (pretty-print).

## Protected Member Functions

void | restrict_as_ufc_function (double *w, const FiniteElement &element, const Cell &dolfin_cell, const double *coordinate_dofs, const ufc::cell &ufc_cell) const
| Restrict as UFC function (by calling eval).

## Additional Inherited Members

Public Attributes inherited from dolfin::Variable
Parameters | parameters
| Parameters.

## Detailed Description

This is a common base class for functions. Functions can be evaluated at a given point and they can be restricted to a given cell in a finite element mesh. This functionality is implemented by sub-classes that implement the eval() and restrict() functions.

DOLFIN provides two implementations of the GenericFunction interface in the form of the classes Function and Expression.

Sub-classes may optionally implement the update() function that will be called prior to restriction when running in parallel.

## Member Function Documentation

## compute_vertex_values()

virtual void dolfin::GenericFunction::compute_vertex_values | ( | std::vector< double > & | vertex_values,
|  | const Mesh & | mesh ) const

pure virtual

Compute values at all mesh vertices.

Implemented in dolfin::Expression, dolfin::Function, and dolfin::MeshDisplacement.

## eval() [1/4]

void GenericFunction::eval | ( | Array< double > & | values,
|  | const Array< double > & | x ) const

virtual

Evaluate at given point (deprecated).

Reimplemented in dolfin::Constant, dolfin::Expression, and dolfin::Function.

## eval() [2/4]

void GenericFunction::eval | ( | Array< double > & | values,
|  | const Array< double > & | x,
|  | const ufc::cell & | cell ) const

virtual

Evaluate at given point in given cell (deprecated).

Reimplemented in dolfin::Expression, dolfin::FacetArea, dolfin::Function, dolfin::MeshCoordinates, dolfin::MeshDisplacement, and dolfin::SpecialFacetFunction.

## eval() [3/4]

void GenericFunction::eval | ( | Eigen::Ref< Eigen::VectorXd > | values,
|  | Eigen::Ref< const Eigen::VectorXd > | x ) const

virtual

Evaluate at given point.

Reimplemented in dolfin::Constant, dolfin::Expression, and dolfin::Function.

## eval() [4/4]

void GenericFunction::eval | ( | Eigen::Ref< Eigen::VectorXd > | values,
|  | Eigen::Ref< const Eigen::VectorXd > | x,
|  | const ufc::cell & | cell ) const

virtual

Evaluate at given point in given cell.

Reimplemented in dolfin::Expression, and dolfin::Function.

## evaluate()

void GenericFunction::evaluate | ( | double * | values,
|  | const double * | coordinates,
|  | const ufc::cell & | cell ) const

override virtual

Evaluate function at given point in cell

Parameters

  values | (double*)
  coordinates | (const double*)
  cell | (ufc::cell&)

## function_space()

virtual std::shared_ptr< const FunctionSpace > dolfin::GenericFunction::function_space | ( |  | ) | const

pure virtual

Pointer to FunctionSpace, if appropriate, otherwise NULL.

Implemented in dolfin::Expression, and dolfin::Function.

## restrict()

virtual void dolfin::GenericFunction::restrict | ( | double * | w,
|  | const FiniteElement & | element,
|  | const Cell & | dolfin_cell,
|  | const double * | coordinate_dofs,
|  | const ufc::cell & | ufc_cell ) const

pure virtual

Restrict function to local cell (compute expansion coefficients w).

Implemented in dolfin::Expression, and dolfin::Function.

## value_dimension()

virtual std::size_t dolfin::GenericFunction::value_dimension | ( | std::size_t | i | ) | const

pure virtual

Return value dimension for given axis.

Implemented in dolfin::Expression, and dolfin::Function.

## value_rank()

virtual std::size_t dolfin::GenericFunction::value_rank | ( |  | ) | const

pure virtual

Return value rank.

Implemented in dolfin::Expression, and dolfin::Function.

## value_shape()

virtual std::vector< std::size_t > dolfin::GenericFunction::value_shape | ( |  | ) | const

pure virtual

Return value shape.

Implemented in dolfin::Expression, and dolfin::Function.

## value_size()

std::size_t GenericFunction::value_size | ( |  | ) | const

Evaluation at given point.

Return value size (product of value dimensions)

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

- /build/dolfin-lFBzDh/dolfin-2019.2.0~legacy20240219.1c52e83/dolfin/function/GenericFunction.h
- /build/dolfin-lFBzDh/dolfin-2019.2.0~legacy20240219.1c52e83/dolfin/function/GenericFunction.cpp