Skip to content

Comments

[Core][Future] Including linear operators to future environment#14119

Draft
rubenzorrilla wants to merge 48 commits intomasterfrom
core/future-linear-operator
Draft

[Core][Future] Including linear operators to future environment#14119
rubenzorrilla wants to merge 48 commits intomasterfrom
core/future-linear-operator

Conversation

@rubenzorrilla
Copy link
Member

📝 Description
In this PR I'm introducing the LinearOperator classes in #14110 to the future environment, namely strategies, schemes, builders and linear solvers.

Note that I also took the chance to rename the LinearSystemContainer to ImplicitStrategyDataContainer, something that is much more self-descriptive IMO.

This requires #14108 and #14110 to be merged first but I'd like to create it as a draft PR to start the discussion and triggering the CI.

@@ -22,6 +22,7 @@
// Project includes
#include "includes/define.h"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#include "includes/define.h"

@@ -22,6 +22,7 @@
// Project includes
#include "includes/define.h"
#include "includes/model_part.h"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#include "includes/model_part.h"

Linear operator already includes it


// Project includes
#include "future/linear_solvers/direct_solver.h"
#include "includes/define.h"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#include "includes/define.h"

#include "containers/csr_matrix.h"
#include "containers/system_vector.h"
#include "containers/sparse_contiguous_row_graph.h"
#include "includes/define.h"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#include "includes/define.h"

#include "containers/csr_matrix.h"
#include "containers/system_vector.h"
#include "containers/sparse_contiguous_row_graph.h"
#include "includes/define.h"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#include "includes/define.h"

{
public:

// FIXME: Does not work... ask @Charlie
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

@loumalouomega loumalouomega left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments

@philbucher
Copy link
Member

This looks cool. In fact I was also looking into this lately. Matrix free only works with iterative solvers right? Does amgcl support it?

@RiccardoRossi
Copy link
Member

This looks cool. In fact I was also looking into this lately. Matrix free only works with iterative solvers right? Does amgcl support it?

yes, it only works with krylov solvers. The problem is that typically it is impossible to mount a preconditioner. No ... AMGCL does not support it...

cool thing is that you can also use to mount a GMRES-krylov solver for nonlinear problem

@philbucher
Copy link
Member

yes, it only works with krylov solvers.

is it worth it then? Seems that you are doing substantial changes to accommodate it. (I have no idea, just curious)

@RiccardoRossi
Copy link
Member

Linear Operators are a nice thing to have, but they are not the reason of being of the reorganization we are doing.

rather we are revamping the strategy/solver design to be more modular and to better consider parallelism (for exampel mpi will now be native) and the application of constraints

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants