37   class GenericFunction;
    64                 const std::vector<double>& coordinate_dofs0,
    65                 const ufc::cell& ufc_cell,
    66                 const std::vector<bool> & enabled_coefficients);
    70                 const std::vector<double>& coordinate_dofs0,
    71                 const ufc::cell& ufc_cell0,
    73                 const std::vector<double>& coordinate_dofs1,
    74                 const ufc::cell& ufc_cell1,
    75                 const std::vector<bool> & enabled_coefficients);
    81                 const std::vector<double>& coordinate_dofs0,
    82                 const ufc::cell& ufc_cell);
    88                 const std::vector<double>& coordinate_dofs0,
    89                 const ufc::cell& ufc_cell0,
    91                 const std::vector<double>& coordinate_dofs1,
    92                 const ufc::cell& ufc_cell1);
    95     const double* 
const * 
w()
 const    96     { 
return w_pointer.data(); }
   101     { 
return w_pointer.data(); }
   106     { 
return macro_w_pointer.data(); }
   111     { 
return macro_w_pointer.data(); }
   116     std::vector<FiniteElement> coefficient_elements;
   120     std::vector<std::shared_ptr<ufc::cell_integral>>
   125     std::vector<std::shared_ptr<ufc::exterior_facet_integral>>
   126       exterior_facet_integrals;
   130     std::vector<std::shared_ptr<ufc::interior_facet_integral>>
   131       interior_facet_integrals;
   135     std::vector<std::shared_ptr<ufc::vertex_integral>>
   140     std::vector<std::shared_ptr<ufc::custom_integral>> custom_integrals;
   144     std::vector<std::shared_ptr<ufc::cutcell_integral>> cutcell_integrals;
   148     std::vector<std::shared_ptr<ufc::interface_integral>> interface_integrals;
   152     std::vector<std::shared_ptr<ufc::overlap_integral>> overlap_integrals;
   157     std::shared_ptr<ufc::cell_integral>
   158       default_cell_integral;
   161     std::shared_ptr<ufc::exterior_facet_integral>
   162       default_exterior_facet_integral;
   165     std::shared_ptr<ufc::interior_facet_integral>
   166       default_interior_facet_integral;
   169     std::shared_ptr<ufc::vertex_integral>
   170       default_vertex_integral;
   173     std::shared_ptr<ufc::custom_integral> default_custom_integral;
   176     std::shared_ptr<ufc::cutcell_integral> default_cutcell_integral;
   179     std::shared_ptr<ufc::interface_integral> default_interface_integral;
   182     std::shared_ptr<ufc::overlap_integral> default_overlap_integral;
   189       if (domain < form.max_cell_subdomain_id())
   191         ufc::cell_integral * integral
   192           = cell_integrals[domain].get();
   196       return default_cell_integral.get();
   201     ufc::exterior_facet_integral*
   204       if (domain < form.max_exterior_facet_subdomain_id())
   206         ufc::exterior_facet_integral* integral
   207           = exterior_facet_integrals[domain].get();
   211       return default_exterior_facet_integral.get();
   216     ufc::interior_facet_integral*
   219       if (domain < form.max_interior_facet_subdomain_id())
   221         ufc::interior_facet_integral* integral
   222           = interior_facet_integrals[domain].get();
   226       return default_interior_facet_integral.get();
   231     ufc::vertex_integral*
   234       if (domain < form.max_vertex_subdomain_id())
   236         ufc::vertex_integral * integral
   237           = vertex_integrals[domain].get();
   241       return default_vertex_integral.get();
   248       if (domain < form.max_custom_subdomain_id())
   250         ufc::custom_integral * integral = custom_integrals[domain].get();
   254       return default_custom_integral.get();
   261       if (domain < form.max_cutcell_subdomain_id())
   263         ufc::cutcell_integral * integral = cutcell_integrals[domain].get();
   267       return default_cutcell_integral.get();
   274       if (domain < form.max_interface_subdomain_id())
   276         ufc::interface_integral * integral = interface_integrals[domain].get();
   280       return default_interface_integral.get();
   287       if (domain < form.max_overlap_subdomain_id())
   289         ufc::overlap_integral * integral = overlap_integrals[domain].get();
   293       return default_overlap_integral.get();
   302     std::vector<double> 
A;
   314     std::vector<std::vector<double>> _w;
   315     std::vector<double*> w_pointer;
   319     std::vector<std::vector<double>> _macro_w;
   320     std::vector<double*> macro_w_pointer;
   323     const std::vector<std::shared_ptr<const GenericFunction>> coefficients;
 ufc::vertex_integral * get_vertex_integral(std::size_t domain)
Definition: UFC.h:232
 
std::vector< double > A_facet
Local tensor. 
Definition: UFC.h:305
 
UFC(const Form &form)
Constructor. 
Definition: UFC.cpp:33
 
ufc::interior_facet_integral * get_interior_facet_integral(std::size_t domain)
Definition: UFC.h:217
 
const ufc::form & form
Form. 
Definition: UFC.h:297
 
double ** macro_w()
Definition: UFC.h:110
 
ufc::exterior_facet_integral * get_exterior_facet_integral(std::size_t domain)
Definition: UFC.h:202
 
const double *const  * macro_w() const
Definition: UFC.h:105
 
Definition: Extrapolation.h:34
 
A Cell is a MeshEntity of topological codimension 0. 
Definition: Cell.h:42
 
ufc::overlap_integral * get_overlap_integral(std::size_t domain)
Definition: UFC.h:285
 
void update(const Cell &cell, const std::vector< double > &coordinate_dofs0, const ufc::cell &ufc_cell, const std::vector< bool > &enabled_coefficients)
Update current cell. 
Definition: UFC.cpp:156
 
ufc::custom_integral * get_custom_integral(std::size_t domain)
Definition: UFC.h:246
 
void init(const Form &form)
Initialise memory. 
Definition: UFC.cpp:52
 
ufc::interface_integral * get_interface_integral(std::size_t domain)
Definition: UFC.h:272
 
ufc::cutcell_integral * get_cutcell_integral(std::size_t domain)
Definition: UFC.h:259
 
std::vector< double > A
Local tensor. 
Definition: UFC.h:302
 
ufc::cell_integral * get_cell_integral(std::size_t domain)
Definition: UFC.h:187
 
~UFC()
Destructor. 
Definition: UFC.cpp:47
 
std::vector< double > macro_A
Local tensor for macro element. 
Definition: UFC.h:308
 
const double *const  * w() const
Pointer to coefficient data. Used to support UFC interface. 
Definition: UFC.h:95
 
double ** w()
Definition: UFC.h:100
 
const Form & dolfin_form
The form. 
Definition: UFC.h:328