Integral over part of domain.

21 Aufrufe
Direkt zur ersten ungelesenen Nachricht

Oleg Kmechak

ungelesen,
13.06.2022, 09:17:2813.06.22
an deal.II User Group
Hello there, 

Facing such a problem.
Want to evaluate integral over circle (see picture below). Integral has such a form:
I = Integral[ solution_value(x, y) * my_func(x, y) * dx dy,  over circle].

Currently I am using the simplest way to evaluate such integral - rectangular approximation. And most time cost part - is using Functions::FEFieldFunction<dim> to get solution_value(x, y). Solving FEM is faster than evaluation of such integrals.

Also, my_func(x, y) has hidden parameter 'order'. Basically, I am using integral to expand field around tip (in the center of circle) into series. And also with higher order, accuracy of series parameter (result of integration) is poorer. 

So maybe once again. How to evaluate fast and accurately integral over such circle (not whole domain)?

Also, maybe I can introduce a function which is equal to 1 inside of circle and 0 - outside. And then integrate over whole domain. 
Also, maybe I can adopt The deal.II Library: Integrators (dealii.org) to fit my function but not sure how I can do it.

Best regards, 
Oleg Kmechak

Inkedinit_river_with_boundary_cond_LI.jpg

Simon Sticko

ungelesen,
13.06.2022, 10:54:2113.06.22
an dea...@googlegroups.com
Hi,

This type of integral can be computed with the tools presented in the Step-85 tutorial:

https://www.dealii.org/developer/doxygen/deal.II/step_85.html

which you can use if you install the master branch of deal.II (or wait for the soon-released 9.4 version).

In particular, take a look at the assemble_system() function in Step-85 and the NonMatching::FEValues class:

https://www.dealii.org/developer/doxygen/deal.II/classNonMatching_1_1FEValues.html

Best,
Simon


On 13/06/2022 15:17, Oleg Kmechak wrote:
> Hello there,
>
> Facing such a problem.
> Want to evaluate integral over circle (see picture below). Integral has such a form:
> I = Integral[ solution_value(x, y) * my_func(x, y) * dx dy,  over circle].
>
> Currently I am using the simplest way to evaluate such integral - rectangular approximation. And most time cost part - is using Functions::FEFieldFunction<dim> to get solution_value(x, y). Solving FEM is faster than evaluation of such integrals.
>
> Also, my_func(x, y) has hidden parameter 'order'. Basically, I am using integral to expand field around tip (in the center of circle) into series. And also with higher order, accuracy of series parameter (result of integration) is poorer.
>
> So maybe once again. How to evaluate fast and accurately integral over such circle (not whole domain)?
>
> Also, maybe I can introduce a function which is equal to 1 inside of circle and 0 - outside. And then integrate over whole domain.
> Also, maybe I can adopt The deal.II Library: Integrators (dealii.org) <https://www.dealii.org/current/doxygen/deal.II/group__Integrators.html> to fit my function but not sure how I can do it.
>
> Best regards,
> Oleg Kmechak
>
> Inkedinit_river_with_boundary_cond_LI.jpg
>
> --
> The deal.II project is located at http://www.dealii.org/ <http://www.dealii.org/>
> For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en <https://groups.google.com/d/forum/dealii?hl=en>
> ---
> You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to dealii+un...@googlegroups.com <mailto:dealii+un...@googlegroups.com>.
> To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/e02ebf7a-c4f2-4202-8cd2-057900260914n%40googlegroups.com <https://groups.google.com/d/msgid/dealii/e02ebf7a-c4f2-4202-8cd2-057900260914n%40googlegroups.com?utm_medium=email&utm_source=footer>.
Allen antworten
Antwort an Autor
Weiterleiten
0 neue Nachrichten