← Back to team overview

ffc team mailing list archive

Re: quadrature optimisations

 

On Tue, Apr 29, 2008 at 08:29:18AM +0100, Garth N. Wells wrote:
>
>
> Kristian Oelgaard wrote:
>> Quoting Anders Logg <logg@xxxxxxxxx>:
>>
>>> On Mon, Apr 28, 2008 at 08:25:53PM +0200, Kristian Oelgaard wrote:
>>>
>>>> # 2D plasticity, cases
>>>> 1) 1st order elements, mesh(1000, 1000)
>>>> 2) 2nd order elements, mesh(500, 500)
>>>> 3) 3rd order elements, mesh(250, 250)
>>>> 4) 4th order elements*, mesh(125, 125)
>>>>
>>>> *Note that because the bilinear form in this case is a 9th order form we
>>> take
>>>> the number of quadrature points equal to 5 when declaring the quadrature
>>> element.
>>>
>>> Another optimization would be to reduce the number of quadrature
>>> points. If your method is order p, then you only need to integrate the
>>> form with quadrature exact for degree p polynomials. So in particular,
>>> you don't necessarily need many quadrature points just because the
>>> integrand has many factors.
>>
>> I don't quite follow. If the displacement field is 4th order, the gradient is
>> 3rd order and the bilinear form is 9th order? And since 5 integration points
>> can integrate 2*5-1 = 9th order polynomials exactly I would say we should use
>> 5 integration points in each direction. This is also what the
>> __init_quadrature() and __compute_degree() functions in monomialintegration.py
>> will return.
>>
>
> I think the point Anders is making is that you don't need exact quadrature.
>
> Garth

Yes. The quadrature order should be chosen to retain the convergence
of the numerical scheme. Integrating exactly may be overkill. That
will speedup quadrature even further.

-- 
Anders


Follow ups

References