Ferrite-FEM / Ferrite.jl

Finite element toolbox for Julia
https://ferrite-fem.github.io
Other
339 stars 87 forks source link

Document custom quadrature rules #513

Open fredrikekre opened 1 year ago

fredrikekre commented 1 year ago

From https://github.com/Ferrite-FEM/Ferrite.jl/pull/482#issuecomment-1272555611 (cc @edljk)

it could perhaps be an easier way to extend quadrature rules in Ferrite.

It is actually pretty easy to do this already -- you can construct your own quadrature rule by:

julia> weights = [2.0, 2.0];

julia> points = [Vec{2}((-0.5, 0.0)), Vec{2}((0.5, 0.0))];

julia> qr = QuadratureRule{2,RefTetrahedron,Float64}(weights, points)
QuadratureRule{2, RefTetrahedron, Float64}([2.0, 2.0], Vec{2, Float64}[[-0.5, 0.0], [0.5, 0.0]])

It would be nice to i) document this and ii) add a constructor QuadratureRule{dim,shape}(weights, points) that doesn't require specifying the element type (Float64 in the example above).

00krishna commented 1 year ago

I can start to work on this.

termi-official commented 1 year ago

I think https://github.com/JuliaApproximation/FastGaussQuadrature.jl is a solid addition for tensor product elements

fredrikekre commented 1 year ago

Ferrite used to use that package directly in the past (https://github.com/Ferrite-FEM/Ferrite.jl/pull/136) but it was removed since compile times where extremely bad back then.