27 #ifndef OOMPH_PRECONDITION_ARRAY_HEADER
28 #define OOMPH_PRECONDITION_ARRAY_HEADER
32 #include <oomph-lib-config.h>
101 class PreconditionerArray
105 PreconditionerArray()
106 : Preconditioner_pt(0),
107 Global_communicator_pt(0),
108 Local_communicator_pt(0)
115 PreconditionerArray(
const PreconditionerArray&) =
delete;
118 void operator=(
const PreconditionerArray&) =
delete;
121 ~PreconditionerArray()
132 Vector<Preconditioner*> prec_pt,
133 const OomphCommunicator* comm_pt);
138 Vector<DoubleVector>& z);
144 delete Preconditioner_pt;
145 Preconditioner_pt = 0;
148 delete Global_communicator_pt;
149 Global_communicator_pt = 0;
150 delete Local_communicator_pt;
151 Local_communicator_pt = 0;
154 First_row_for_proc.clear();
155 Nrow_local_for_proc.clear();
156 First_row_from_proc.clear();
157 Nrow_local_from_proc.clear();
158 First_proc_for_prec.clear();
159 Nproc_for_prec.clear();
166 for (
unsigned i = 0;
i < Nprec;
i++)
168 delete Distribution_pt[
i];
170 Distribution_pt.resize(0);
182 int compute_tag(
const int& nproc,
187 return source + (nproc * dest) + (nproc * nproc *
type);
198 Vector<unsigned> First_proc_for_prec;
202 Vector<unsigned> Nproc_for_prec;
206 Vector<Vector<unsigned>> First_row_for_proc;
210 Vector<Vector<unsigned>> Nrow_local_for_proc;
214 Vector<Vector<unsigned>> First_row_from_proc;
218 Vector<Vector<unsigned>> Nrow_local_from_proc;
224 OomphCommunicator* Global_communicator_pt;
227 OomphCommunicator* Local_communicator_pt;
231 Vector<LinearAlgebraDistribution*> Distribution_pt;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Definition: communicator.h:54
Definition: oomph_definitions.h:222
Definition: preconditioner_array.h:50
void solve_preconditioners(const Vector< DoubleVector > &r, Vector< DoubleVector > &z)
Definition: preconditioner_array.h:61
void setup_preconditioners(Vector< CRDoubleMatrix * > matrix_pt, Vector< Preconditioner * > prec_pt, const OomphCommunicator *comm_pt)
Definition: preconditioner_array.h:52
Definition: oomph-lib/src/generic/Vector.h:58
Vector4f Color
Definition: gpuhelper.h:19
unsigned Preconditioner
----------------------—Domain Properties------------------------—
Definition: space_time_oscillating_cylinder.cc:725
void source(const Vector< double > &x, Vector< double > &f)
Source function.
Definition: unstructured_two_d_circle.cc:46
type
Definition: compute_granudrum_aor.py:141
void clean_up_memory()
Definition: oomph_definitions.cc:86
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86