|
template<int num_cells> |
std::array< std::int32_t, 2 *num_cells > | get_cell_facet_pairs (std::int32_t f, std::span< const std::int32_t > cells, const graph::AdjacencyList< std::int32_t > &c_to_f) |
|
std::vector< std::int32_t > | compute_integration_domains (IntegralType integral_type, const mesh::Topology &topology, std::span< const std::int32_t > entities, int dim) |
| Given an integral type and a set of entities, compute the entities that should be integrated over.
|
|
template<dolfinx::scalar T, std::floating_point U> |
std::vector< std::vector< std::array< std::shared_ptr< const FunctionSpace< U > >, 2 > > > | extract_function_spaces (const std::vector< std::vector< const Form< T, U > * > > &a) |
| Extract test (0) and trial (1) function spaces pairs for each bilinear form for a rectangular array of forms.
|
|
template<dolfinx::scalar T, std::floating_point U> |
la::SparsityPattern | create_sparsity_pattern (const Form< T, U > &a) |
| Create a sparsity pattern for a given form.
|
|
template<std::floating_point T> |
ElementDofLayout | create_element_dof_layout (const fem::FiniteElement< T > &element, const std::vector< int > &parent_map={}) |
| Create an ElementDofLayout from a FiniteElement.
|
|
DofMap | create_dofmap (MPI_Comm comm, const ElementDofLayout &layout, mesh::Topology &topology, std::function< void(std::span< std::int32_t >, std::uint32_t)> permute_inv, std::function< std::vector< int >(const graph::AdjacencyList< std::int32_t > &)> reorder_fn) |
| Create a dof map on mesh.
|
|
std::vector< DofMap > | create_dofmaps (MPI_Comm comm, const std::vector< ElementDofLayout > &layouts, mesh::Topology &topology, std::function< void(std::span< std::int32_t >, std::uint32_t)> permute_inv, std::function< std::vector< int >(const graph::AdjacencyList< std::int32_t > &)> reorder_fn) |
| Create a set of dofmaps on a given topology.
|
|
std::vector< std::string > | get_coefficient_names (const ufcx_form &ufcx_form) |
|
std::vector< std::string > | get_constant_names (const ufcx_form &ufcx_form) |
| Get the name of each constant in a UFC form.
|
|
template<dolfinx::scalar T, std::floating_point U = scalar_value_type_t<T>> |
Form< T, U > | create_form_factory (const ufcx_form &ufcx_form, const std::vector< std::shared_ptr< const FunctionSpace< U > > > &spaces, const std::vector< std::shared_ptr< const Function< T, U > > > &coefficients, const std::vector< std::shared_ptr< const Constant< T > > > &constants, const std::map< IntegralType, std::vector< std::pair< std::int32_t, std::span< const std::int32_t > > > > &subdomains, const std::map< std::shared_ptr< const mesh::Mesh< U > >, std::span< const std::int32_t > > &entity_maps, std::shared_ptr< const mesh::Mesh< U > > mesh=nullptr) |
| Create a Form from UFCx input with coefficients and constants passed in the required order.
|
|
template<dolfinx::scalar T, std::floating_point U = scalar_value_type_t<T>> |
Form< T, U > | create_form (const ufcx_form &ufcx_form, const std::vector< std::shared_ptr< const FunctionSpace< U > > > &spaces, const std::map< std::string, std::shared_ptr< const Function< T, U > > > &coefficients, const std::map< std::string, std::shared_ptr< const Constant< T > > > &constants, const std::map< IntegralType, std::vector< std::pair< std::int32_t, std::span< const std::int32_t > > > > &subdomains, const std::map< std::shared_ptr< const mesh::Mesh< U > >, std::span< const std::int32_t > > &entity_maps, std::shared_ptr< const mesh::Mesh< U > > mesh=nullptr) |
| Create a Form from UFC input with coefficients and constants resolved by name.
|
|
template<dolfinx::scalar T, std::floating_point U = scalar_value_type_t<T>> |
Form< T, U > | create_form (ufcx_form *(*fptr)(), const std::vector< std::shared_ptr< const FunctionSpace< U > > > &spaces, const std::map< std::string, std::shared_ptr< const Function< T, U > > > &coefficients, const std::map< std::string, std::shared_ptr< const Constant< T > > > &constants, const std::map< IntegralType, std::vector< std::pair< std::int32_t, std::span< const std::int32_t > > > > &subdomains, const std::map< std::shared_ptr< const mesh::Mesh< U > >, std::span< const std::int32_t > > &entity_maps, std::shared_ptr< const mesh::Mesh< U > > mesh=nullptr) |
| Create a Form using a factory function that returns a pointer to a ufcx_form .
|
|
template<std::floating_point T> |
FunctionSpace< T > | create_functionspace (std::shared_ptr< mesh::Mesh< T > > mesh, const basix::FiniteElement< T > &e, const std::vector< std::size_t > &value_shape={}, std::function< std::vector< int >(const graph::AdjacencyList< std::int32_t > &)> reorder_fn=nullptr) |
| Create a function space from a Basix element.
|
|
template<int _bs, dolfinx::scalar T> |
void | pack (std::span< T > coeffs, std::int32_t cell, int bs, std::span< const T > v, std::span< const std::uint32_t > cell_info, const DofMap &dofmap, auto transform) |
| Pack a single coefficient for a single cell.
|
|
template<dolfinx::scalar T, std::floating_point U> |
void | pack_coefficient_entity (std::span< T > c, int cstride, const Function< T, U > &u, std::span< const std::uint32_t > cell_info, std::span< const std::int32_t > entities, std::size_t estride, FetchCells auto &&fetch_cells, std::int32_t offset) |
| Pack a single coefficient for a set of active entities.
|
|
template<dolfinx::scalar T, std::floating_point U> |
std::pair< std::vector< T >, int > | allocate_coefficient_storage (const Form< T, U > &form, IntegralType integral_type, int id) |
| Allocate storage for coefficients of a pair (integral_type, / id) from a Form.
|
|
template<dolfinx::scalar T, std::floating_point U> |
std::map< std::pair< IntegralType, int >, std::pair< std::vector< T >, int > > | allocate_coefficient_storage (const Form< T, U > &form) |
| Allocate memory for packed coefficients of a Form.
|
|
template<dolfinx::scalar T, std::floating_point U> |
void | pack_coefficients (const Form< T, U > &form, IntegralType integral_type, int id, std::span< T > c, int cstride) |
| Pack coefficients of a Form for a given integral type and domain id.
|
|
template<dolfinx::scalar T, std::floating_point U = scalar_value_type_t<T>> |
Expression< T, U > | create_expression (const ufcx_expression &e, const std::vector< std::shared_ptr< const Function< T, U > > > &coefficients, const std::vector< std::shared_ptr< const Constant< T > > > &constants, std::shared_ptr< const FunctionSpace< U > > argument_function_space=nullptr) |
| Create Expression from UFC.
|
|
template<dolfinx::scalar T, std::floating_point U = scalar_value_type_t<T>> |
Expression< T, U > | create_expression (const ufcx_expression &e, const std::map< std::string, std::shared_ptr< const Function< T, U > > > &coefficients, const std::map< std::string, std::shared_ptr< const Constant< T > > > &constants, std::shared_ptr< const FunctionSpace< U > > argument_function_space=nullptr) |
| Create Expression from UFC input (with named coefficients and constants).
|
|
template<dolfinx::scalar T, std::floating_point U> |
void | pack_coefficients (const Form< T, U > &form, std::map< std::pair< IntegralType, int >, std::pair< std::vector< T >, int > > &coeffs) |
| Pack coefficients of a Form.
|
|
template<dolfinx::scalar T, std::floating_point U> |
std::pair< std::vector< T >, int > | pack_coefficients (const Expression< T, U > &e, std::span< const std::int32_t > entities, std::size_t estride) |
| Pack coefficients of a Expression u for a give list of active entities.
|
|
template<typename U > |
std::vector< typename U::scalar_type > | pack_constants (const U &u) |
| Pack constants of u into a single array ready for assembly.
|
|
Functions supporting finite element method operations.