27#include "neml2/equation_systems/AxisLayout.h"
LinearSystem(const LinearSystem &)=default
virtual AssembledVector g() const =0
Get the given variables g from the current step.
virtual void post_assemble(bool A, bool B, bool b)
Callback after assembly to perform.
AxisLayout ulayout() const
Get the unknown-variable layout.
bool _A_up_to_date
Flag indicating if the system matrix is up to date. Setters invalidate this.
Definition LinearSystem.h:124
std::shared_ptr< AxisLayout > _ulayout
Layout of unknowns, partitioned by variable groups.
Definition LinearSystem.h:131
virtual void set_g(const AssembledVector &)=0
Set the given variables g from the current step.
virtual void set_u(const AssembledVector &)=0
Set the unknown u.
bool _B_up_to_date
Flag indicating if the auxiliary matrix is up to date. Setters invalidate this.
Definition LinearSystem.h:126
std::tuple< AssembledMatrix, AssembledMatrix, AssembledVector > A_and_B_and_b()
Assemble the auxiliary matrix B = dr/dg along with A and b.
virtual std::shared_ptr< AxisLayout > setup_blayout()=0
Setup the RHS variable layout.
std::tuple< AssembledMatrix, AssembledVector > A_and_b()
Assemble and return the right-hand side and operator.
std::shared_ptr< AxisLayout > _blayout
Layout of RHS variables, partitioned by variable groups.
Definition LinearSystem.h:135
virtual void init()
Setup axis layouts.
virtual AssembledVector u() const =0
Get the unknown u.
virtual void assemble(AssembledMatrix *A, AssembledMatrix *B, AssembledVector *b)=0
Compute the operator and right-hand side.
virtual void u_changed()
Trigger when unknown variables changed.
AssembledMatrix A()
Assemble and return the operator, A.
LinearSystem(LinearSystem &&) noexcept=default
bool _b_up_to_date
Flag indicating if the system RHS is up to date. Setters invalidate this.
Definition LinearSystem.h:128
std::shared_ptr< AxisLayout > _glayout
Layout of given variables.
Definition LinearSystem.h:133
virtual std::shared_ptr< AxisLayout > setup_glayout()=0
Setup the given variable layout.
AxisLayout blayout() const
Get the RHS variable layout.
AssembledVector b()
Assemble and return the right-hand side, b.
virtual void pre_assemble(bool A, bool B, bool b)
Callback before assembly to perform.
virtual void g_changed()
Trigger when given variables changed.
AxisLayout glayout() const
Get the given-variable layout.
std::tuple< AssembledMatrix, AssembledMatrix > A_and_B()
Assemble the auxiliary matrix B = dr/dg along with A.
virtual std::shared_ptr< AxisLayout > setup_ulayout()=0
Setup the unknown layout, partitioned by variable group.
Definition DiagnosticsInterface.h:31
Dense representation of a matrix assembled from a 2D-list of tensors and their layout.
Definition AssembledMatrix.h:37
Dense representation of a tensor assembled from a list of tensors and their layout.
Definition AssembledVector.h:36
Definition AxisLayout.h:34