Manifold without preserving vertex location

31 views
Skip to first unread message

Praveen C

unread,
Sep 28, 2024, 2:56:35 AM9/28/24
to Deal. II Googlegroup
Dear all

Suppose I have a unit square and I want to map the top side

y = 1

to

y = 1 + 0.1 * sin(2*pi*x)

I want the grid to be still Cartesian but attach a manifold to top side.

This does not seem to be possible with Manifold/ChartManifold/FunctionManifold etc., is this correct ?

I can use MappingFEField, but is this the only option available for above case ?

Thanks
praveen

Luca Heltai

unread,
Sep 28, 2024, 3:09:15 AM9/28/24
to dea...@googlegroups.com
I think you are essentially trying to achieve what step-53 does. It’s unclear to me what you mean by “I want the grid to be Cartesian”. Topologically? Or you literally want just one layer of elements to follow your manifold description?

In this last case, you should not attach a manifold right away.

- refine
- move the top vertices to the right position
- attach a manifold

Luca

> Il giorno 28 set 2024, alle ore 08:56, Praveen C <pra...@math.tifrbng.res.in> ha scritto:
>
> Dear all
> --
> The deal.II project is located at http://www.dealii.org/
> For mailing list/forum options, see 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.
> To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/B09D9CEF-1F0A-43BC-AE72-D548745A931D%40gmail.com.

Praveen C

unread,
Sep 28, 2024, 3:37:57 AM9/28/24
to Deal. II Googlegroup
Thank you Luca for the response. I see that manifolds will not work in the way I was expecting.

I want to map a fixed Cartesian mesh to some other domain, e.g., as in the work of Thomas Wick. So I dont want to modify the Cartesian mesh, as it is supposed to describe the reference domain.

I am constructing a MappingFEField to achieve this mapping by solving some elliptic equation.

To describe the displacement of the boundary of Cartesian mesh, I was hoping to attach a Manifold. But Manifold fixes vertex locations,

So I think I should just fill boundary values of the euler_vector of MappingFEField myself and proceed.

Thanks
praveen

Wolfgang Bangerth

unread,
Oct 4, 2024, 12:02:05 AM10/4/24
to dea...@googlegroups.com
On 9/28/24 01:37, Praveen C wrote:
>
> I want to map a fixed Cartesian mesh to some other domain, e.g., as in the
> work of Thomas Wick. So I dont want to modify the Cartesian mesh, as it is
> supposed to describe the reference domain.
>
> I am constructing a MappingFEField to achieve this mapping by solving some
> elliptic equation.
>
> To describe the displacement of the boundary of Cartesian mesh, I was hoping
> to attach a Manifold. But Manifold fixes vertex locations,

The manifold you would attach this way applies to the triangulation, which you
don't want to change, not to the computed transformation. You need to
prescribe your boundary displacement as the boundary conditions for the
elliptic equation you describe. (In fact, you can compute this via the
GridTools::laplace_transform() function.)


> So I think I should just fill boundary values of the euler_vector of
> MappingFEField myself and proceed.

That's essentially right, except that the euler_vector is going to be the
output of the elliptic solver that takes the boundary values as inputs.

Best
W.

--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/


Reply all
Reply to author
Forward
0 new messages