DOLFIN
DOLFIN C++ interface
Public Member Functions | Protected Member Functions | List of all members
dolfin::GenericFunction Class Referenceabstract

#include <GenericFunction.h>

Inheritance diagram for dolfin::GenericFunction:
Inheritance graph
[legend]
Collaboration diagram for dolfin::GenericFunction:
Collaboration graph
[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. More...
 
virtual void evaluate (double *values, const double *coordinates, const ufc::cell &cell) const override
 
virtual std::shared_ptr< const FunctionSpacefunction_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 Variableoperator= (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

◆ evaluate()

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

Evaluate function at given point in cell

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

◆ 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: