- Thank you received: 0
Inheriting Linear Algebra Classes
5 years 4 months ago #1681
by tomathew
Inheriting Linear Algebra Classes was created 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
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
5 years 4 months ago - 5 years 4 months ago #1682
by tomathew
Replied by tomathew on topic Inheriting Linear Algebra Classes
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
Thanks again,
Tom
Last edit: 5 years 4 months ago by tomathew. Reason: some typos
5 years 4 months ago - 5 years 4 months ago #1685
by lkogler
Replied by lkogler on topic Inheriting Linear Algebra Classes
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.
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: 5 years 4 months ago by lkogler.
The following user(s) said Thank You: tomathew
5 years 4 months ago #1687
by tomathew
Replied by tomathew on topic Inheriting Linear Algebra Classes
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.
5 years 4 months ago - 5 years 4 months ago #1688
by lkogler
Replied by lkogler on topic Inheriting Linear Algebra Classes
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.
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: 5 years 4 months ago by lkogler.
The following user(s) said Thank You: tomathew
5 years 4 months ago - 5 years 4 months ago #1689
by tomathew
Replied by tomathew on topic Inheriting Linear Algebra Classes
Thanks, I will give it a try myself and get back if I'm stuck.
Thanks again
Tom
Thanks again
Tom
Last edit: 5 years 4 months ago by tomathew. Reason: Gramo
Time to create page: 0.103 seconds