ffc.uflacs.backends.ufc package¶
Submodules¶
ffc.uflacs.backends.ufc.coordinate_mapping module¶
-
ffc.uflacs.backends.ufc.coordinate_mapping.
generate_assign_inverse
(L, K, J, detJ, gdim, tdim)[source]¶
-
ffc.uflacs.backends.ufc.coordinate_mapping.
generate_compute_ATA
(L, ATA, A, m, n, index_prefix='')[source]¶ Generate code to declare and compute ATA[i,j] = sum_k A[k,i]*A[k,j] with given A shaped (m,n).
-
class
ffc.uflacs.backends.ufc.coordinate_mapping.
ufc_coordinate_mapping
[source]¶
ffc.uflacs.backends.ufc.evaluatebasis module¶
Work in progress translation of FFC evaluatebasis code to uflacs CNodes format.
-
ffc.uflacs.backends.ufc.evaluatebasis.
generate_evaluate_reference_basis
(L, data)[source]¶ Generate code to evaluate element basisfunctions at an arbitrary point on the reference element.
The value(s) of the basisfunction is/are computed as in FIAT as the dot product of the coefficients (computed at compile time) and basisvalues which are dependent on the coordinate and thus have to be computed at run time.
The function should work for all elements supported by FIAT, but it remains untested for tensor valued elements.
This code is adapted from code in FFC which computed the basis from physical coordinates, and also to use UFLACS utilities.
The FFC code has a comment “From FIAT_NEW.polynomial_set.tabulate()”.
ffc.uflacs.backends.ufc.finite_element module¶
-
ffc.uflacs.backends.ufc.finite_element.
affine_weights
(dim)[source]¶ Compute coefficents for mapping from reference to physical element
ffc.uflacs.backends.ufc.form module¶
-
ffc.uflacs.backends.ufc.form.
add_ufc_form_integral_methods
(cls)[source]¶ This function generates methods on the class it decorates, for each integral name template and for each integral type.
This allows implementing e.g. create_###_integrals once in the decorated class as ‘_create_foo_integrals’, and this function will expand that implementation into ‘create_cell_integrals’, ‘create_exterior_facet_integrals’, etc.
Name templates are taken from ‘integral_name_templates’ and ‘ufc_integral_types’.
-
class
ffc.uflacs.backends.ufc.form.
ufc_form
[source]¶ Bases:
ffc.uflacs.backends.ufc.generator.ufc_generator
-
create_cell_integral
(L, ir, integral_type='cell', declname='create_cell_integral', impl=<function ufc_form._create_foo_integral>)¶ Return implementation of ufc::form::create_cell_integral().
-
create_custom_integral
(L, ir, integral_type='custom', declname='create_custom_integral', impl=<function ufc_form._create_foo_integral>)¶ Return implementation of ufc::form::create_custom_integral().
-
create_cutcell_integral
(L, ir, integral_type='cutcell', declname='create_cutcell_integral', impl=<function ufc_form._create_foo_integral>)¶ Return implementation of ufc::form::create_cutcell_integral().
-
create_default_cell_integral
(L, ir, integral_type='cell', declname='create_default_cell_integral', impl=<function ufc_form._create_default_foo_integral>)¶ Return implementation of ufc::form::create_default_cell_integral().
-
create_default_custom_integral
(L, ir, integral_type='custom', declname='create_default_custom_integral', impl=<function ufc_form._create_default_foo_integral>)¶ Return implementation of ufc::form::create_default_custom_integral().
-
create_default_cutcell_integral
(L, ir, integral_type='cutcell', declname='create_default_cutcell_integral', impl=<function ufc_form._create_default_foo_integral>)¶ Return implementation of ufc::form::create_default_cutcell_integral().
-
create_default_exterior_facet_integral
(L, ir, integral_type='exterior_facet', declname='create_default_exterior_facet_integral', impl=<function ufc_form._create_default_foo_integral>)¶ Return implementation of ufc::form::create_default_exterior_facet_integral().
-
create_default_interface_integral
(L, ir, integral_type='interface', declname='create_default_interface_integral', impl=<function ufc_form._create_default_foo_integral>)¶ Return implementation of ufc::form::create_default_interface_integral().
-
create_default_interior_facet_integral
(L, ir, integral_type='interior_facet', declname='create_default_interior_facet_integral', impl=<function ufc_form._create_default_foo_integral>)¶ Return implementation of ufc::form::create_default_interior_facet_integral().
-
create_default_overlap_integral
(L, ir, integral_type='overlap', declname='create_default_overlap_integral', impl=<function ufc_form._create_default_foo_integral>)¶ Return implementation of ufc::form::create_default_overlap_integral().
-
create_default_vertex_integral
(L, ir, integral_type='vertex', declname='create_default_vertex_integral', impl=<function ufc_form._create_default_foo_integral>)¶ Return implementation of ufc::form::create_default_vertex_integral().
-
create_exterior_facet_integral
(L, ir, integral_type='exterior_facet', declname='create_exterior_facet_integral', impl=<function ufc_form._create_foo_integral>)¶ Return implementation of ufc::form::create_exterior_facet_integral().
-
create_interface_integral
(L, ir, integral_type='interface', declname='create_interface_integral', impl=<function ufc_form._create_foo_integral>)¶ Return implementation of ufc::form::create_interface_integral().
-
create_interior_facet_integral
(L, ir, integral_type='interior_facet', declname='create_interior_facet_integral', impl=<function ufc_form._create_foo_integral>)¶ Return implementation of ufc::form::create_interior_facet_integral().
-
create_overlap_integral
(L, ir, integral_type='overlap', declname='create_overlap_integral', impl=<function ufc_form._create_foo_integral>)¶ Return implementation of ufc::form::create_overlap_integral().
-
create_vertex_integral
(L, ir, integral_type='vertex', declname='create_vertex_integral', impl=<function ufc_form._create_foo_integral>)¶ Return implementation of ufc::form::create_vertex_integral().
-
geometric_dimension
(L, ir)[source]¶ Default implementation of returning geometric dimension fetched from ir.
-
has_cell_integrals
(L, ir, integral_type='cell', declname='has_cell_integrals', impl=<function ufc_form._has_foo_integrals>)¶ Return implementation of ufc::form::has_cell_integrals().
-
has_custom_integrals
(L, ir, integral_type='custom', declname='has_custom_integrals', impl=<function ufc_form._has_foo_integrals>)¶ Return implementation of ufc::form::has_custom_integrals().
-
has_cutcell_integrals
(L, ir, integral_type='cutcell', declname='has_cutcell_integrals', impl=<function ufc_form._has_foo_integrals>)¶ Return implementation of ufc::form::has_cutcell_integrals().
-
has_exterior_facet_integrals
(L, ir, integral_type='exterior_facet', declname='has_exterior_facet_integrals', impl=<function ufc_form._has_foo_integrals>)¶ Return implementation of ufc::form::has_exterior_facet_integrals().
-
has_interface_integrals
(L, ir, integral_type='interface', declname='has_interface_integrals', impl=<function ufc_form._has_foo_integrals>)¶ Return implementation of ufc::form::has_interface_integrals().
-
has_interior_facet_integrals
(L, ir, integral_type='interior_facet', declname='has_interior_facet_integrals', impl=<function ufc_form._has_foo_integrals>)¶ Return implementation of ufc::form::has_interior_facet_integrals().
-
has_overlap_integrals
(L, ir, integral_type='overlap', declname='has_overlap_integrals', impl=<function ufc_form._has_foo_integrals>)¶ Return implementation of ufc::form::has_overlap_integrals().
-
has_vertex_integrals
(L, ir, integral_type='vertex', declname='has_vertex_integrals', impl=<function ufc_form._has_foo_integrals>)¶ Return implementation of ufc::form::has_vertex_integrals().
-
max_cell_subdomain_id
(L, ir, integral_type='cell', declname='max_cell_subdomain_id', impl=<function ufc_form._max_foo_subdomain_id>)¶ Return implementation of ufc::form::max_cell_subdomain_id().
-
max_custom_subdomain_id
(L, ir, integral_type='custom', declname='max_custom_subdomain_id', impl=<function ufc_form._max_foo_subdomain_id>)¶ Return implementation of ufc::form::max_custom_subdomain_id().
-
max_cutcell_subdomain_id
(L, ir, integral_type='cutcell', declname='max_cutcell_subdomain_id', impl=<function ufc_form._max_foo_subdomain_id>)¶ Return implementation of ufc::form::max_cutcell_subdomain_id().
-
max_exterior_facet_subdomain_id
(L, ir, integral_type='exterior_facet', declname='max_exterior_facet_subdomain_id', impl=<function ufc_form._max_foo_subdomain_id>)¶ Return implementation of ufc::form::max_exterior_facet_subdomain_id().
-
max_interface_subdomain_id
(L, ir, integral_type='interface', declname='max_interface_subdomain_id', impl=<function ufc_form._max_foo_subdomain_id>)¶ Return implementation of ufc::form::max_interface_subdomain_id().
-
max_interior_facet_subdomain_id
(L, ir, integral_type='interior_facet', declname='max_interior_facet_subdomain_id', impl=<function ufc_form._max_foo_subdomain_id>)¶ Return implementation of ufc::form::max_interior_facet_subdomain_id().
-
max_overlap_subdomain_id
(L, ir, integral_type='overlap', declname='max_overlap_subdomain_id', impl=<function ufc_form._max_foo_subdomain_id>)¶ Return implementation of ufc::form::max_overlap_subdomain_id().
-
max_vertex_subdomain_id
(L, ir, integral_type='vertex', declname='max_vertex_subdomain_id', impl=<function ufc_form._max_foo_subdomain_id>)¶ Return implementation of ufc::form::max_vertex_subdomain_id().
-
ffc.uflacs.backends.ufc.generator module¶
-
class
ffc.uflacs.backends.ufc.generator.
ufc_generator
(basename)[source]¶ Bases:
object
Common functionality for code generators producing ufc classes.
The generate function is the driver for generating code for a class. It automatically extracts template keywords and inserts the results from calls to self.<keyword>(language, ir), or the value of ir[keyword] if there is no self.<keyword>.
ffc.uflacs.backends.ufc.generators module¶
ffc.uflacs.backends.ufc.integrals module¶
ffc.uflacs.backends.ufc.templates module¶
ffc.uflacs.backends.ufc.utils module¶
Module contents¶
Backend for generating UFC code.