### Quadrature vs uflacs Representation

148

views

2

Hello everyone,

I'm using both of these representations but they are not clear on my mind. I check the book and it says

"The quadrature approach can deal with cases in which not all functions come from a finite elementspace, using ‘quadrature functions’ that can be evaluated directly at quadrature points. The tensor representation approach only supports cases in which all functions come from a finite element space(using interpolation if necessary)."

So, I understand that if I use Quadrature functionspace I have to use Quadrature Representation and for rest of the case it is good to use uflacs. What about visa versa ? What could be happen if I use uflacs while using Quadrature functionspace ? Actually the main question is, where should I use Quadrature and uflacs representation ? What is their main difference ? (Is the difference the way of calcaulation of integrals in the system ?)

Regards,

I'm using both of these representations but they are not clear on my mind. I check the book and it says

"The quadrature approach can deal with cases in which not all functions come from a finite elementspace, using ‘quadrature functions’ that can be evaluated directly at quadrature points. The tensor representation approach only supports cases in which all functions come from a finite element space(using interpolation if necessary)."

So, I understand that if I use Quadrature functionspace I have to use Quadrature Representation and for rest of the case it is good to use uflacs. What about visa versa ? What could be happen if I use uflacs while using Quadrature functionspace ? Actually the main question is, where should I use Quadrature and uflacs representation ? What is their main difference ? (Is the difference the way of calcaulation of integrals in the system ?)

Regards,

Community: FEniCS Project

### 1 Answer

3

Quadrature element (functions space) has nothing to do with quadrature representation. Quadrature element is supported by all representations.

Representations govern the code generation for assembly kernels. Different representation results in different but equivalent code. Quadrature representation is deprecated and will be obsolete. UFLACS is more modern rewrite performing usually better both at compile-time and run-time.

From user point-of-view one should not need to switch the representation and should keep it auto which defaults to UFLACS, unless trying to circumvent a bug present in UFLACS; see https://bitbucket.org/fenics-project/ffc/issues?status=new&status=open&component=uflacs-repr for the list of bugs in UFLACS.

Another modern implementation of form compiler is TSFC representation, see http://fenics.readthedocs.io/projects/ffc/en/latest/installation.html#tsfc-requirements for installation of its additional dependencies.
All representation give equivalent code but expressed/rearranged in a different way. Integrals are evaluated/approximated by quadrature in all cases. Quadrature scheme/degree is chosen according to degree estimation routines in UFL.

Representations govern the code generation for assembly kernels. Different representation results in different but equivalent code. Quadrature representation is deprecated and will be obsolete. UFLACS is more modern rewrite performing usually better both at compile-time and run-time.

From user point-of-view one should not need to switch the representation and should keep it auto which defaults to UFLACS, unless trying to circumvent a bug present in UFLACS; see https://bitbucket.org/fenics-project/ffc/issues?status=new&status=open&component=uflacs-repr for the list of bugs in UFLACS.

Another modern implementation of form compiler is TSFC representation, see http://fenics.readthedocs.io/projects/ffc/en/latest/installation.html#tsfc-requirements for installation of its additional dependencies.

`tensor`

is not present any more. It had become obsolete and has been removed. Similar optimization strategies are present in both `uflacs`

and `tsfc`

with certain parameter switches.
written
3 months ago by
Jan Blechta

Please login to add an answer/comment or follow this question.

Thanks for your valuable comments. In the book it says that, quadrature representation uses quadrature rule for integration but tensor represenation follow different method (interpolation if neccessary). I guess it refers the tensor representation by UFLACS. If it does not use quadrature method for integrations how does it actually evaluates integrals by interpolation ?