14 #if !defined(KRATOS_ILU_PRECONDITIONER_H_INCLUDED )
15 #define KRATOS_ILU_PRECONDITIONER_H_INCLUDED
52 template<
class TSparseSpaceType,
class TDenseSpaceType>
95 if (
L!=NULL)
delete[]
L;
96 if (
iL!=NULL)
delete[]
iL;
97 if (
jL!=NULL)
delete[]
jL;
98 if (
U!=NULL)
delete[]
U;
99 if (
iU!=NULL)
delete[]
iU;
100 if (
jU!=NULL)
delete[]
jU;
121 L =
new double[size];
122 U =
new double[size];
129 std::copy(Other.
L, Other.
L+size,
L);
130 std::copy(Other.
U, Other.
U+size,
U);
132 std::copy(Other.
jL, Other.
jL+size,
jL);
134 std::copy(Other.
jU, Other.
jU+size,
jU);
172 for (
i=0;
i<size;
i++)
175 for (indexj=
iL[
i]; indexj<
iL[
i+1]; indexj++)
181 for (
i=size-1;
i>=0;
i--)
184 for (indexj=
iU[
i]+1; indexj<
iU[
i+1]; indexj++)
204 for (
i=0;
i<size;
i++)
208 for (indexj=
iU[
i]+1; indexj<
iU[
i+1]; indexj++)
214 for (
i=size-1;
i>=0;
i--)
217 for (indexj=
iL[
i]; indexj<
iL[
i+1]; indexj++)
219 rX[
jL[indexj]]=rX[
jL[indexj]]-rxi*
L[indexj];
243 std::string
Info()
const override
245 return "ILUPreconditioner";
252 OStream <<
"ILUPreconditioner";
363 template<
class TSparseSpaceType,
class TDenseSpaceType>
372 template<
class TSparseSpaceType,
class TDenseSpaceType>
377 OStream << std::endl;
ILUPreconditioner class.
Definition: ilu_preconditioner.h:54
double * L
Definition: ilu_preconditioner.h:280
VectorType & ApplyLeft(VectorType &rX) override
Definition: ilu_preconditioner.h:166
ILUPreconditioner & operator=(const ILUPreconditioner &Other)
Assignment operator.
Definition: ilu_preconditioner.h:117
void TransposeMult(SparseMatrixType &rA, VectorType &rX, VectorType &rY) override
Definition: ilu_preconditioner.h:155
int * iL
Definition: ilu_preconditioner.h:279
TDenseSpaceType::MatrixType DenseMatrixType
Definition: ilu_preconditioner.h:70
double * U
Definition: ilu_preconditioner.h:280
TSparseSpaceType::VectorType VectorType
Definition: ilu_preconditioner.h:68
void Mult(SparseMatrixType &rA, VectorType &rX, VectorType &rY) override
Definition: ilu_preconditioner.h:148
unsigned int mILUSize
Definition: ilu_preconditioner.h:278
Preconditioner< TSparseSpaceType, TDenseSpaceType > BaseType
Definition: ilu_preconditioner.h:63
VectorType & ApplyTransposeLeft(VectorType &rX) override
Definition: ilu_preconditioner.h:197
int * jU
Definition: ilu_preconditioner.h:279
void PrintInfo(std::ostream &OStream) const override
Print information about this object.
Definition: ilu_preconditioner.h:250
ILUPreconditioner()
Default constructor.
Definition: ilu_preconditioner.h:77
int * jL
Definition: ilu_preconditioner.h:279
KRATOS_CLASS_POINTER_DEFINITION(ILUPreconditioner)
Counted pointer of ILUPreconditioner.
void PrintData(std::ostream &OStream) const override
Print object's data.
Definition: ilu_preconditioner.h:256
~ILUPreconditioner() override
Destructor.
Definition: ilu_preconditioner.h:93
int * iU
Definition: ilu_preconditioner.h:279
TSparseSpaceType::MatrixType SparseMatrixType
Definition: ilu_preconditioner.h:66
ILUPreconditioner(const ILUPreconditioner &Other)
Copy constructor.
Definition: ilu_preconditioner.h:89
std::string Info() const override
Return information about this object.
Definition: ilu_preconditioner.h:243
Preconditioner class.
Definition: preconditioner.h:75
z
Definition: GenerateWind.py:163
void TransposeMult(SparseSpaceType &dummy, SparseSpaceType::MatrixType &rA, SparseSpaceType::VectorType &rX, SparseSpaceType::VectorType &rY)
Definition: add_strategies_to_python.cpp:104
TSpaceType::IndexType Size(TSpaceType &dummy, typename TSpaceType::VectorType const &rV)
Definition: add_strategies_to_python.cpp:111
void Mult(TSpaceType &dummy, typename TSpaceType::MatrixType &rA, typename TSpaceType::VectorType &rX, typename TSpaceType::VectorType &rY)
Definition: add_strategies_to_python.cpp:98
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
TExpressionType::data_type sum(AMatrix::MatrixExpression< TExpressionType, TCategory > const &TheExpression)
Definition: amatrix_interface.h:675
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
float temp
Definition: rotating_cone.py:85
integer i
Definition: TensorModule.f:17