- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2d azimuthally symmetric (r,z) and 3d (r,z,theta) cylindrical poisson solver routines would be a nice addition to the FFT PDE solver routines already in place. These types of geometries are very common in real world problems. Also, a method for specifying internal points with a value would be handy. In the world of electrostatics this is analogous to creating electrodes within the volume and specifying the potentials. This can be achieved by precalculating a capacity matrix. I've coded all of this myself, but a nicely optimized MKL solution would be appreciated.
Link Copied
8 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - ringlenscl.msu.edu
2d azimuthally symmetric (r,z) and 3d (r,z,theta) cylindrical poisson solver routines would be a nice addition to the FFT PDE solver routines already in place. These types of geometries are very common in real world problems. Also, a method for specifying internal points with a value would be handy. In the world of electrostatics this is analogous to creating electrodes within the volume and specifying the potentials. This can be achieved by precalculating a capacity matrix. I've coded all of this myself, but a nicely optimized MKL solution would be appreciated.
This is really Feature Request for now ( especially if take into account that
there are Poison Solver for Cartesian and Spherical coordinate systems )
quesion:
it's not clear what do you mean:
... Also, a method for specifying internal points with a value would be handy. ...
Can you provide more details ,, what do you want to have?
should it be the separate routine... any details?
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Gennady Fedorov (Intel)
Hello Ryan,
This is really Feature Request for now ( especially if take into account that
there are Poison Solver for Cartesian and Spherical coordinate systems )
quesion:
it's not clear what do you mean:
... Also, a method for specifying internal points with a value would be handy. ...
Can you provide more details ,, what do you want to have?
should it be the separate routine... any details?
--Gennady
This is really Feature Request for now ( especially if take into account that
there are Poison Solver for Cartesian and Spherical coordinate systems )
quesion:
it's not clear what do you mean:
... Also, a method for specifying internal points with a value would be handy. ...
Can you provide more details ,, what do you want to have?
should it be the separate routine... any details?
--Gennady
I realize that it's a pretty specialized feature request, but it has many applications in areas such as fluid dynamics in a pipe and charged particle beam transport. Both of these types of systems make use of cylindrical boundary conditions.
In terms of "internal points" it's most easy to consider Coulombic systems where you're solving Poisson's equation. Regardless of what type of domain you have (Cartesian, spherical, cylindrical, etc.) you specify the boundary conditions (or they're determined by the type of transform you employ). Let's say within this domain you want to place an electrode which is held at a given potential. What is required is that the correct amount of charge is assigned to each mesh point which represents your electrode such that when the system is solved the potential on all electrode points is what you had specified. In order to achieve this, it actually requires two iterations of the solving routine. The first solve determines the potential at the electrode points due to the presence of charges within the domain. Then the necessary charge is added to the electrode points which will bring it to the desired potential. The next solve routine is performed and the potential will be correct everywhere.
What must be precalculated is something called a capacitance matrix which contains information on how much charge is induced on all other electrode points if one charge unit is placed on a given electrode point.
Maybe this is too specialized but I thought that I'd throw it out there in case anyone else would find it useful. If so, I can provide information on how to implement it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - ringlenscl.msu.edu
Hi Gennady,
I realize that it's a pretty specialized feature request, but it has many applications in areas such as fluid dynamics in a pipe and charged particle beam transport. Both of these types of systems make use of cylindrical boundary conditions.
In terms of "internal points" it's most easy to consider Coulombic systems where you're solving Poisson's equation. Regardless of what type of domain you have (Cartesian, spherical, cylindrical, etc.) you specify the boundary conditions (or they're determined by the type of transform you employ). Let's say within this domain you want to place an electrode which is held at a given potential. What is required is that the correct amount of charge is assigned to each mesh point which represents your electrode such that when the system is solved the potential on all electrode points is what you had specified. In order to achieve this, it actually requires two iterations of the solving routine. The first solve determines the potential at the electrode points due to the presence of charges within the domain. Then the necessary charge is added to the electrode points which will bring it to the desired potential. The next solve routine is performed and the potential will be correct everywhere.
What must be precalculated is something called a capacitance matrix which contains information on how much charge is induced on all other electrode points if one charge unit is placed on a given electrode point.
Maybe this is too specialized but I thought that I'd throw it out there in case anyone else would find it useful. If so, I can provide information on how to implement it.
Hi Ryan,
Thanks a lot for deep definition your problem. Butcould youdesribe another two questions: What type of boundary conditionyou want to use on eachsurface? And what type of grid you need on each dimesion (uniform/nonuniform)?
With best regards,
Alexander Kalinkin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Alexander Kalinkin (Intel)
Hi Ryan,
Thanks a lot for deep definition your problem. Butcould youdesribe another two questions: What type of boundary conditionyou want to use on eachsurface? And what type of grid you need on each dimesion (uniform/nonuniform)?
With best regards,
Alexander Kalinkin
In my case I use Dirichlet boundary conditions on all boundaries in the 3D case. With the 2D case I use Dirichlet at r=Rmax and then either 0 or dphi/dz=0 at z=0=zmax, chosen by the type of transform you use, sine or cosine, respectively. I use nonuniform grids, primarily. Thanks for your attention.
Ryan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - ringlenscl.msu.edu
Hi Alexander,
In my case I use Dirichlet boundary conditions on all boundaries in the 3D case. With the 2D case I use Dirichlet at r=Rmax and then either 0 or dphi/dz=0 at z=0=zmax, chosen by the type of transform you use, sine or cosine, respectively. I use nonuniform grids, primarily. Thanks for your attention.
Ryan
Are you need nonuniform grid only on one dimension or on several? In first case variables could be separated but not in second so it isfundamentally different problems.
With best regards,
Alexander Kalinkin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Alexander Kalinkin (Intel)
Hi Ryan,
Are you need nonuniform grid only on one dimension or on several? In first case variables could be separated but not in second so it isfundamentally different problems.
With best regards,
Alexander Kalinkin
Are you need nonuniform grid only on one dimension or on several? In first case variables could be separated but not in second so it isfundamentally different problems.
With best regards,
Alexander Kalinkin
In the 2D azimuthally symmetric case (r,z), there are only two dimensions so it works there. For the 3D case you can specify the number of grid points in the r,z, and theta directions. By expressing the solution as a truncated Fourier series with respect to theta the problem is reduced to ntheta 2D problems, where ntheta is the number of mesh points chosen for theta. Hopefully that makes sense.
Ryan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - ringlenscl.msu.edu
Hi Alexander,
In the 2D azimuthally symmetric case (r,z), there are only two dimensions so it works there. For the 3D case you can specify the number of grid points in the r,z, and theta directions. By expressing the solution as a truncated Fourier series with respect to theta the problem is reduced to ntheta 2D problems, where ntheta is the number of mesh points chosen for theta. Hopefully that makes sense.
Ryan
Thanks a lot for deep explanation of problem you need to solve so this information will insert in proper Feature Request.
With best regards,
Alexander Kalinkin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi there,
To me your post looks like you need a solver (programmatically) for this project of yours.
I will like to assist if only you can post the equation you want to solve.
Thanks.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page