Cylindrical coordinates Boundary and embedded mesh

How to use openEMS. Discussion on examples, tutorials etc

Moderator: thorsten

MPCEngineer
Posts: 31
Joined: Thu 02 Sep 2021, 18:29

Cylindrical coordinates Boundary and embedded mesh

Hi Thorsten,

a free and open source equivalent-circuit (EC) FDTD simulation platform supporting cylindrical coordinates suitable for the analysis of traveling wave MRI applications.

On the Openems wiki page https://openems.de/index.php/FDTD_Mesh.html there is an example of a sub-grid. Does the grid definition have to match to a mesh line on the R-axis?
Can I suggest adding the picture below from your paper as this makes clear what the sub-grid looks like.
Screenshot from 2021-10-04 16-59-12.png (186.33 KiB) Viewed 1639 times

When using circular coordinates from -pi to +pi you have a closed cylinder space. How do you define the boundary conditions for the closed cylinder?
I am using :
BC = {'MUR' 'MUR' 'MUR' 'MUR' 'MUR' 'MUR'}; % boundary conditions
FDTD = SetBoundaryCond( FDTD, BC );

But the a-axis does not have a boundary as it is closed.

Thanks,

MPC.

MPCEngineer
Posts: 31
Joined: Thu 02 Sep 2021, 18:29

Re: Cylindrical coordinates Boundary and embedded mesh

I have also noticed for cylindrical coordinates that using 'MUR' boundary conditions the energy does not always tend to zero. I assume this is because a 'MUR' boundary only absorbs energy that is orthogonal.

If I use:
BC = {'PML_8' 'PML_8' 'PML_8' 'PML_8' 'PML_8' 'PML_8'}; % boundary conditions
FDTD = SetBoundaryCond( FDTD, BC );

Then I get 'nan' energy levels?

If I use 'PML_8' just n the z direction I get increasing energy levels.
BC = {'MUR' 'MUR' 'MUR' 'MUR' 'PML_8' 'PML_8'}; % boundary conditions
FDTD = SetBoundaryCond( FDTD, BC );

What is the best boundary conditions for a closed cylinder with r=0????

MPC

thorsten
Posts: 1479
Joined: Mon 27 Jun 2011, 12:26

Re: Cylindrical coordinates Boundary and embedded mesh

Hi,

for r_0 and a_0 and a_max you should just define PEC (kind of the default as it is always there in any case)...
e.g. BC = [0, 3, 0, 0, 3, 3]
The engine should detect the grid type and implement the special boundary conditions as needed anyways.
It is very important that the mesh in alpha direction (mesh.y) spans over 2*pi between the first and last line and is a multiple of 2^N for N levels of subgrids you use (both should be obvious from the picture you posted)

But in general, using the cylindrical mesh is not trivial and you should really only use it if you have too...
Let me know how this goes.

br
Thorsten