Forum Message

 

 

We have moved the forum to https://forum.ngsolve.org . This is an archived version of the topics until 05/05/23. All the topics were moved to the new forum and conversations can be continued there. This forum is just kept as legacy to not invalidate old links. If you want to continue a conversation just look for the topic in the new forum.

Notice

The forum is in read only mode.

Inheriting Linear Algebra Classes

More
4 years 8 months ago #1681 by tomathew
Dear all,
I am working on indefinite Maxwell's equations for scattering problems, and I would like to implement and try may be the Optimized Schwarz DDM. So, I plan to inheriting may be the linear solver classses, and implement this Krylov methods.
Is there any project or example where a new Krylov linear solver or preconditioner has been attempted ? And if yes, can you please share a link to that. It would be a great starting point for me.
I don't think the BDDC preconditioner or the FETI-DP is enough for my scattering problems. I have strong material contrasts.
Is the domain decomposition in NGSolve happening at algebraic or geometric level ?
If I plan to work on this, can I get some support or occasional help if needed ?
With thanks,
Tom
More
4 years 8 months ago - 4 years 8 months ago #1682 by tomathew
I think I have to more specific. By optimized Schwarz methods, I may have to explicitly impose some transmission conditions at the interface between the sub-domains. The asmPreconditioner.cpp in myLittleNGSolve is of course a wonderful place to start with. But the tricky thing would be to impose the transmission conditions, and may be to edit the local matrix elements, corresponding to the interface. Are any similar attempts been done or any projects or examples exist, may be for a starting point ?
Thanks again,
Tom
Last edit: 4 years 8 months ago by tomathew. Reason: some typos
More
4 years 8 months ago - 4 years 8 months ago #1685 by lkogler
1) The domain decomposition happens geometrically. When a mesh is loaded into a parallel context, or when it is explicitely distributed, it gets partitioned by METIS and one part gets sent to each proc .

2) Some krylov space methods (gmres, cg, minres) are implmemented on python ise (ngsolve-src/python/krylovspace.py)

3) There are currently no ongoing projects I am aware of that do domain decomposition with NGSolve. There is a prototype FETI-DP implementation from last years usermeeting.

4) For prototyping, you can create a preconditioner in pyhton by derving from BaseMatrix. Have a look at unit 2.1.2 from the i-tutorials in the documentation.

5) As you asked about this before, I also want to mention that we now have a PETSc interface . It is hwoever, still at a relatively early stage.
Last edit: 4 years 8 months ago by lkogler.
The following user(s) said Thank You: tomathew
More
4 years 8 months ago #1687 by tomathew
Thanks for the reply. Since the domain decomposition is geometric, is it possible to have access to subdomain boundary or interface by some boundary identifier or label. WIth this, I can may be impose the transmission conditions.on these interfaces.
More
4 years 8 months ago - 4 years 8 months ago #1688 by lkogler
Currently, you only can get information about which DOFs are shared with which procas via python (fespace.ParallelDofs()).


On C++-side, the MeshAccess has a "GetDistantProcs" method, which tells you which procs a node (so a vertex, edge, face) is shared with.

Exposing this information also to python would probably not be a problem.
Last edit: 4 years 8 months ago by lkogler.
The following user(s) said Thank You: tomathew
More
4 years 8 months ago - 4 years 8 months ago #1689 by tomathew
Thanks, I will give it a try myself and get back if I'm stuck.
Thanks again
Tom
Last edit: 4 years 8 months ago by tomathew. Reason: Gramo
Time to create page: 0.106 seconds