Form.h¶
Note
The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.
-
class
Form
¶ Parent class(es)
Base class for UFC code generated by FFC for DOLFIN with option -l.
A note on the order of trial and test spaces: FEniCS numbers argument spaces starting with the leading dimension of the corresponding tensor (matrix). In other words, the test space is numbered 0 and the trial space is numbered 1. However, in order to have a notation that agrees with most existing finite element literature, in particular
a = a(u, v)the spaces are numbered from right to
a: V_1 x V_0 -> RNote
Figure out how to write this in math mode without it getting messed up in the Python version.
This is reflected in the ordering of the spaces that should be supplied to generated subclasses. In particular, when a bilinear form is initialized, it should be initialized as
a(V_1, V_0) = ...
where
V_1
is the trial space andV_0
is the test space. However, when a form is initialized by a list of argument spaces (the variablefunction_spaces
in the constructors below, the list of spaces should start with space number 0 (the test space) and then space number 1 (the trial space).-
Form
(std::size_t rank, std::size_t num_coefficients)¶ Create form of given rank with given number of coefficients
- Arguments
- rank (std::size_t)
- The rank.
- num_coefficients (std::size_t)
- The number of coefficients.
Create form (shared data)
- Arguments
- ufc_form (ufc::form)
- The UFC form.
- function_spaces (std::vector<
FunctionSpace
>) - Vector of function spaces.
- coefficients (std::vector<
GenericFunction
>) - Vector of coefficients.
-
std::size_t
rank
() const¶ Return rank of form (bilinear form = 2, linear form = 1, functional = 0, etc)
- Returns
- std::size_t
- The rank of the form.
-
std::size_t
num_coefficients
() const¶ Return number of coefficients
- Returns
- std::size_t
- The number of coefficients.
-
std::vector<std::size_t>
coloring
(std::size_t entity_dim) const¶ Return coloring type for colored (multi-threaded) assembly of form over a mesh entity of a given dimension
- Arguments
- entity_dim (std::size_t)
- Dimension.
- Returns
- std::vector<std::size_t>
- Coloring type.
Set mesh, necessary for functionals when there are no function spaces
- Arguments
- mesh (
Mesh
) - The mesh.
- mesh (
Return mesh shared pointer (if any)
- Returns
Mesh
- The mesh shared pointer.
-
boost::shared_ptr<const FunctionSpace>
function_space
(std::size_t i) const¶ Return function space for given argument
- Arguments
- i (std::size_t)
- Index
- Returns
FunctionSpace
- Function space shared pointer.
-
std::vector<boost::shared_ptr<const FunctionSpace>>
function_spaces
() const¶ Return function spaces for arguments
- Returns
- std::vector<
FunctionSpace
> - Vector of function space shared pointers.
- std::vector<
Set coefficient with given number (shared pointer version)
- Arguments
- i (std::size_t)
- The given number.
- coefficient (
GenericFunction
) - The coefficient.
Set coefficient with given name (shared pointer version)
- Arguments
- name (std::string)
- The name.
- coefficient (
GenericFunction
) - The coefficient.
Set all coefficients in given map, possibly a subset (shared pointer version)
- Arguments
- coefficients (std::map<std::string,
GenericFunction
>) - The map of coefficients.
- coefficients (std::map<std::string,
-
boost::shared_ptr<const GenericFunction>
coefficient
(std::size_t i) const¶ Return coefficient with given number
- Arguments
- i (std::size_t)
- Index
- Returns
GenericFunction
- The coefficient.
-
boost::shared_ptr<const GenericFunction>
coefficient
(std::string name) const¶ Return coefficient with given name
- Arguments
- name (std::string)
- The name.
- Returns
GenericFunction
- The coefficient.
-
std::vector<boost::shared_ptr<const GenericFunction>>
coefficients
() const¶ Return all coefficients
- Returns
- std::vector<
GenericFunction
> - All coefficients.
- std::vector<
-
std::size_t
coefficient_number
(const std::string &name) const¶ Return the number of the coefficient with this name
- Arguments
- name (std::string)
- The name.
- Returns
- std::size_t
- The number of the coefficient with the given name.
-
std::string
coefficient_name
(std::size_t i) const¶ Return the name of the coefficient with this number
- Arguments
- i (std::size_t)
- The number
- Returns
- std::string
- The name of the coefficient with the given number.
-
boost::shared_ptr<const MeshFunction<std::size_t>>
cell_domains
() const¶ Return cell domains (zero pointer if no domains have been specified)
- Returns
MeshFunction
<std::size_t>- The cell domains.
-
boost::shared_ptr<const MeshFunction<std::size_t>>
exterior_facet_domains
() const¶ Return exterior facet domains (zero pointer if no domains have been specified)
- Returns
- boost::shared_ptr<
MeshFunction
<std::size_t> > - The exterior facet domains.
- boost::shared_ptr<
-
boost::shared_ptr<const MeshFunction<std::size_t>>
interior_facet_domains
() const¶ Return interior facet domains (zero pointer if no domains have been specified)
- Returns
MeshFunction
<std::size_t>- The interior facet domains.
Set cell domains
- Arguments
- cell_domains (
MeshFunction
<std::size_t>) - The cell domains.
- cell_domains (
Set exterior facet domains
- Arguments
- exterior_facet_domains (
MeshFunction
<std::size_t>) - The exterior facet domains.
- exterior_facet_domains (
Set interior facet domains
- Arguments
- interior_facet_domains (
MeshFunction
<std::size_t>) - The interior facet domains.
- interior_facet_domains (
-
boost::shared_ptr<const ufc::form>
ufc_form
() const¶ Return UFC form shared pointer
- Returns
- ufc::form
- The UFC form.
-
void
check
() const¶ Check function spaces and coefficients
-