Komplex  Development
Functions
azk_create_linsys.c File Reference

Creation routines for building Komplex systems. More...

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "az_aztec.h"
#include "azk_komplex.h"
Include dependency graph for azk_create_linsys.c:

Functions

void AZK_create_linsys_c2k (double *xc, double *bc, int *options, double *params, int *proc_config, AZ_MATRIX *Amat_complex, double **x, double **b, AZ_MATRIX **Amat_komplex)
 Create Komplex System from Complex System. More...
 
void AZK_create_linsys_g2k (double *xr, double *xi, double *br, double *bi, int *options, double *params, int *proc_config, double c0r, double c0i, AZ_MATRIX *Amat_mat0, double c1r, double c1i, AZ_MATRIX *Amat_mat1, double **x, double **b, AZ_MATRIX **Amat_komplex)
 Create Komplex System from General System. More...
 
void AZK_create_linsys_ri2k (double *xr, double *xi, double *br, double *bi, int *options, double *params, int *proc_config, AZ_MATRIX *Amat_real, double *val_imag, double **x, double **b, AZ_MATRIX **Amat_komplex)
 Create Komplex System from Real and Imaginary Parts. More...
 

Detailed Description

Creation routines for building Komplex systems.

KOMPLEX is an add-on module to AZTEC that allows users to solve complex-valued linear systems.

KOMPLEX solves a complex-valued linear system Ax = b by solving an equivalent real-valued system of twice the dimension. Specifically, writing in terms of real and imaginary parts, we have

\[ (A_r + i*A_i)*(x_r + i*x_i) = (b_r + i*b_i) \]

or by separating into real and imaginary equations we have

\[ \left( \begin{array}{rr} A_r & -A_i\\ A_i & A_r \end{array} \right) \left( \begin{array}{r} x_r\\ x_i \end{array} \right) = \left( \begin{array}{r} b_r\\ b_i \end{array} \right) \]

which is a real-valued system of twice the size. If we find xr and xi, we can form the solution to the original system as x = xr +i*xi.

KOMPLEX accept user linear systems in three forms with either global or local index values.

1) The first form is true complex. The user passes in an MSR or VBR format matrix where the values are stored like Fortran complex numbers. Thus, the values array is of type double that is twice as long as the number of complex values. Each complex entry is stored with real part followed by imaginary part (as in Fortran).

2) The second form stores real and imaginary parts separately, but the pattern for each is identical. Thus only the values of the imaginary part are passed to the creation routines.

3) The third form accepts two real-valued matrices with no assumption about the structure of the matrices. Each matrix is multiplied by a user-supplied complex constant. This is the most general form.

Each of the above forms supports a global or local index set. By this we mean that the index values (stored in bindx) refer to the global problem indices, or the local indices (for example after calling AZ_transform).

Function Documentation

◆ AZK_create_linsys_c2k()

void AZK_create_linsys_c2k ( double *  xc,
double *  bc,
int *  options,
double *  params,
int *  proc_config,
AZ_MATRIX *  Amat_complex,
double **  x,
double **  b,
AZ_MATRIX **  Amat_komplex 
)

Create Komplex System from Complex System.

Transforms a complex-valued system

     Amat_complex * xc = bc

where double precision arrays hold the complex values of Amat_complex, xc and bc in Fortran complex format, i.e., if dimension of complex system is N then xc is of length 2*N and the first complex value is stored with the real part in xc[0] and the imaginary part in xc[1] and so on.

Parameters
xc(In) Contains the complex initial guess/solution vector with the real/imag parts interleaved as in Fortran complex format.
bc(In) RHS in Fortran complex format.
options(In) Determines specific solution method and other parameters.
params(In) Drop tolerance and convergence tolerance info.
proc_config(In) Machine configuration. proc_config[AZ_node] is the node number. proc_config[AZ_N_procs] is the number of processors.
Amat_complex(In) An AZ_MATRIX structure where Amat_complex->val contain the values of the complex matrix in Fortran complex format.
x(Out) Komplex version of initial guess and solution.
b(Out) Komplex version of RHS.
Amat_komplex(Out) Komplex version of matrix stored as an AZ_MATRIX structure.

References AZK_create_matrix_c2k(), AZK_create_vector_c2k(), and AZK_permute_ri().

◆ AZK_create_linsys_g2k()

void AZK_create_linsys_g2k ( double *  xr,
double *  xi,
double *  br,
double *  bi,
int *  options,
double *  params,
int *  proc_config,
double  c0r,
double  c0i,
AZ_MATRIX *  Amat_mat0,
double  c1r,
double  c1i,
AZ_MATRIX *  Amat_mat1,
double **  x,
double **  b,
AZ_MATRIX **  Amat_komplex 
)

Create Komplex System from General System.

Transforms a complex-valued system

(c0r+i*c0i)*A0 +(c1r+i*c1i)*A1) * (xr+i*xi) = (br+i*bi)

to a Komplex system.

Parameters
xr(In) Real part of initial guess.
xi(In) Imaginary part of initial guess.
br(In) Real part of right hand side of linear system.
bi(In) Imaginary part of right hand side of linear system.
options(In) Determines specific solution method and other parameters.
params(In) Drop tolerance and convergence tolerance info.
proc_config(In) Machine configuration. proc_config[AZ_node] is the node number. proc_config[AZ_N_procs] is the number of processors.
c0r(In) Real part of constant to be multiplied with first matrix.
c0i(In) Imaginary part of constant to be multiplied with first matrix.
c1r(In) Real part of constant to be multiplied with second matrix.
c1i(In) Imaginary part of constant to be multiplied with second matrix.
Amat_mat0(In) AZ_MATRIX object containing first real-valued matrix.
Amat_mat1(In) AZ_MATRIX object containing second real-valued matrix.
x(Out) Komplex version of initial guess and solution.
b(Out) Komplex version of RHS.
Amat_komplex(Out) Komplex version of matrix stored as an AZ_MATRIX structure.

References AZK_create_matrix_g2k(), AZK_create_vector_g2k(), and AZK_permute_ri().

◆ AZK_create_linsys_ri2k()

void AZK_create_linsys_ri2k ( double *  xr,
double *  xi,
double *  br,
double *  bi,
int *  options,
double *  params,
int *  proc_config,
AZ_MATRIX *  Amat_real,
double *  val_imag,
double **  x,
double **  b,
AZ_MATRIX **  Amat_komplex 
)

Create Komplex System from Real and Imaginary Parts.

Transforms a complex-valued system

  (Ar +i*Ai) * (xr + i*xi) = (br + i*bi)

where double precision arrays hold the real and imaginary parts separately. The pattern of the imaginary part matches the real part. Thus no structure for the imaginary part is passed in.

Parameters
xr(In) Real part of initial guess.
xi(In) Imaginary part of initial guess.
br(In) Real part of right hand side of linear system.
bi(In) Imaginary part of right hand side of linear system.
options(In) Determines specific solution method and other parameters.
params(In) Drop tolerance and convergence tolerance info.
proc_config(In) Machine configuration. proc_config[AZ_node] is the node number. proc_config[AZ_N_procs] is the number of processors.
Amat_real(In) AZ_MATRIX object containing real matrix.
val_imag(In) Double arrya containing the values ONLY for imaginary matrix.
x(Out) Komplex version of initial guess and solution.
b(Out) Komplex version of RHS.
Amat_komplex(Out) Komplex version of matrix stored as an AZ_MATRIX structure.

References AZK_create_matrix_ri2k(), AZK_create_vector_ri2k(), and AZK_permute_ri().

AZK_create_linsys_g2k
void AZK_create_linsys_g2k(double *xr, double *xi, double *br, double *bi, int *options, double *params, int *proc_config, double c0r, double c0i, AZ_MATRIX *Amat_mat0, double c1r, double c1i, AZ_MATRIX *Amat_mat1, double **x, double **b, AZ_MATRIX **Amat_komplex)
Create Komplex System from General System.
Definition: azk_create_linsys.c:227
Komplex_RowMatrix
Definition: Komplex_RowMatrix.h:70
Komplex_RowMatrix::OperatorRangeMap
const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this matrix operator.
Komplex_Vector::Length
int Length() const
Returns the length of the vector.
Definition: Komplex_Vector.cpp:158
Komplex_Vector::ReplaceMap
int ReplaceMap(const Epetra_BlockMap &map)
Definition: Komplex_Vector.cpp:163
AZK_create_vector_g2k
void AZK_create_vector_g2k(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, double *vr, double *vi, double **vk)
Create Komplex vector from Real and Imaginary Parts.
Definition: azk_create_vector.c:205
Epetra_BlockMap::Comm
const Epetra_Comm & Comm() const
AZK_destroy_linsys
void AZK_destroy_linsys(int *options, double *params, int *proc_config, double **x, double **b, AZ_MATRIX **Amat_komplex)
Destroy a Komplex System.
Definition: azk_destroy_linsys.c:141
Komplex_RowMatrix::UseTranspose
bool UseTranspose() const
Returns the current UseTranspose setting.
Definition: Komplex_RowMatrix.cpp:365
Komplex_MultiVector::Norm1
int Norm1(double *Result) const
Compute the 1-norm of each vector in multivector.
Definition: Komplex_MultiVector.cpp:652
Epetra_BlockMap::NumMyElements
int NumMyElements() const
Epetra_MultiVector::ReplaceGlobalValue
int ReplaceGlobalValue(int GlobalRow, int VectorIndex, double ScalarValue)
Komplex_RowMatrix::LeftScale
int LeftScale(const Epetra_Vector &x)
Scales the Komplex_RowMatrix on the left with a Epetra_Vector x.
Definition: Komplex_RowMatrix.cpp:236
Epetra_Comm::NumProc
virtual int NumProc() const=0
Komplex_Vector::~Komplex_Vector
virtual ~Komplex_Vector()
Komplex_Vector destructor.
Definition: Komplex_Vector.cpp:73
Komplex_LinearProblem::KomplexProblem
Epetra_LinearProblem * KomplexProblem() const
Returns pointer to the Epetra_LinearProblem object that defines the Komplex formulation.
Definition: Komplex_LinearProblem.h:167
Komplex_MultiVector::ReplaceMyValue
int ReplaceMyValue(int MyRow, int VectorIndex, double ScalarValue)
Replace current value at the specified (MyRow, VectorIndex) location with ScalarValue.
Definition: Komplex_MultiVector.cpp:350
Komplex_RowMatrix::Graph
const Epetra_CrsGraph & Graph() const
Returns a reference to the Epetra_CrsGraph object associated with this matrix.
Definition: Komplex_RowMatrix.cpp:154
Komplex_MultiVector::RHS
bool RHS() const
Returns true if this is a right-hand side multivector, false otherwise.
Komplex_RowMatrix::StorageOptimized
bool StorageOptimized() const
If OptimizeStorage() has been called, this query returns true; otherwise it returns false.
Definition: Komplex_RowMatrix.cpp:130
Epetra_MultiVector::Values
double * Values() const
Epetra_BlockMap::ElementSize
int ElementSize() const
AZK_create_linsys_c2k
void AZK_create_linsys_c2k(double *xc, double *bc, int *options, double *params, int *proc_config, AZ_MATRIX *Amat_complex, double **x, double **b, AZ_MATRIX **Amat_komplex)
Create Komplex System from Complex System.
Definition: azk_create_linsys.c:150
Komplex_RowMatrix::NumGlobalCols
int NumGlobalCols() const
Returns the number of global matrix columns.
Definition: Komplex_RowMatrix.cpp:276
Komplex_RowMatrix::InvRowSums
int InvRowSums(Epetra_Vector &x) const
Computes the sum of absolute values of the rows of the Komplex_RowMatrix, results returned in x.
Definition: Komplex_RowMatrix.cpp:232
Komplex_RowMatrix::NormInf
double NormInf() const
Returns the infinity norm of the global matrix.
Definition: Komplex_RowMatrix.cpp:256
Epetra_BlockMap::FirstPointInElementList
int * FirstPointInElementList() const
AZK_create_matrix_ri2k
void AZK_create_matrix_ri2k(int options[], double params[], int proc_config[], AZ_MATRIX *Amat_real, double *val_imag, AZ_MATRIX **Amat_komplex)
Create Komplex Matrix from Real and Imaginary Parts.
Definition: azk_create_matrix.c:1073
Komplex_Ordering::Reset
void Reset(Komplex_KForms NewKForm)
Reset the values of P_ and D_ to their original state and set KForm_ to NewKForm.
Definition: Komplex_Ordering.cpp:168
Epetra_MultiVector::PutScalar
int PutScalar(double ScalarConstant)
Komplex_RowMatrix::SetUseTranspose
int SetUseTranspose(bool UseTranspose)
If set true, transpose of this operator will be applied.
Definition: Komplex_RowMatrix.cpp:347
Epetra_MultiVector::Random
int Random()
Komplex_Ordering
Komplex_Ordering: A class for manipulating the KForm of various Komplex objects.
Definition: Komplex_Ordering.h:59
Komplex_RowMatrix::UpperTriangular
bool UpperTriangular() const
If matrix is upper triangular in local index space, this query returns true; otherwise it returns fal...
Definition: Komplex_RowMatrix.cpp:252
Komplex_Ordering::SwitchKForm
int SwitchKForm(Komplex_KForms NewKForm)
Switches the current K form.
Definition: Komplex_Ordering.cpp:92
AZK_create_precon
void AZK_create_precon(int *options, double *params, int *proc_config, double *x, double *b, AZ_MATRIX *Amat, AZ_PRECOND **Prec)
Create a Preconditioner for a Komplex matrix.
Definition: azk_create_precon.c:93
Komplex_RowMatrix::InvColSums
int InvColSums(Epetra_Vector &x) const
Computes the sum of absolute values of the columns of the Komplex_RowMatrix, results returned in x.
Definition: Komplex_RowMatrix.cpp:240
View
Definition: Komplex_DataAccess.hpp:56
Komplex_RowMatrix::~Komplex_RowMatrix
virtual ~Komplex_RowMatrix()
Komplex_RowMatrix Destructor.
Definition: Komplex_RowMatrix.cpp:118
Epetra_DistObject::Map
const Epetra_BlockMap & Map() const
Komplex_RowMatrix::FillComplete
int FillComplete()
Signal that data entry is complete. Perform transformations to local index space.
Definition: Komplex_RowMatrix.cpp:198
Komplex_Ordering::MyScaling
int MyScaling(int MyRow, double &Scalar)
Definition: Komplex_Ordering.cpp:162
Komplex_RowMatrix::Komplex_RowMatrix
Komplex_RowMatrix(Epetra_DataAccess CV, const Epetra_BlockMap &RowMap, int NumEntriesPerRow, Komplex_KForms KForm=K1)
Default Komplex_RowMatrix constuctor with fixed number of indices per row.
Definition: Komplex_RowMatrix.cpp:45
Komplex_MultiVector::NumVectors
int NumVectors() const
Returns the number of vectors in the multivector.
Definition: Komplex_MultiVector.cpp:1483
Komplex_Ordering::ScalingVector
int ScalingVector(double *Scales)
Definition: Komplex_Ordering.cpp:125
Komplex_RowMatrix::RightScale
int RightScale(const Epetra_Vector &x)
Scales the Komplex_RowMatrix on the right with a Epetra_Vector x.
Definition: Komplex_RowMatrix.cpp:244
Komplex_MultiVector::MyLength
int MyLength() const
Returns the local vector length on the calling processor of vectors in the multivector.
Definition: Komplex_MultiVector.cpp:1488
Komplex_MultiVector
Komplex_MultiVector: A class for constructing and using equivalent real formulations of dense complex...
Definition: Komplex_MultiVector.h:157
AZK_create_vector_ri2k
void AZK_create_vector_ri2k(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, double *vr, double *vi, double **vk)
Create Komplex vector from Real and Imaginary Parts.
Definition: azk_create_vector.c:245
AZK_destroy_vector
void AZK_destroy_vector(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, double **vk)
Destroy a Komplex vector.
Definition: azk_destroy_vector.c:140
AZK_extract_solution_k2c
void AZK_extract_solution_k2c(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, AZ_PRECOND *Prec, double *vk, double *vc)
Extract a Complex vector from a Komplex vector.
Definition: azk_extract_solution.c:144
Komplex_RowMatrix::NumGlobalNonzeros
int NumGlobalNonzeros() const
Returns the number of nonzero entries in the global matrix.
Definition: Komplex_RowMatrix.cpp:280
Komplex_Operator::Apply
int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
Definition: Komplex_Operator.cpp:70
Komplex_MultiVector::ImagValues
double *& ImagValues(int i) const
Vector access function.
Definition: Komplex_MultiVector.cpp:1439
Komplex_RowMatrix::NumMyCols
int NumMyCols() const
Returns the number of matrix columns owned by the calling processor.
Definition: Komplex_RowMatrix.cpp:268
Epetra_MultiVector::MinValue
int MinValue(double *Result) const
Komplex_RowMatrix::ColMap
const Epetra_Map & ColMap() const
Returns the Epetra_Map object that describes the set of column-indices that appear in each processor'...
Definition: Komplex_RowMatrix.cpp:162
Epetra_MultiVector::MeanValue
int MeanValue(double *Result) const
Epetra_Comm::Barrier
virtual void Barrier() const=0
Komplex_DataAccess
Komplex_DataAccess
Definition: Komplex_DataAccess.hpp:54
Komplex_MultiVector::GlobalLength
int GlobalLength() const
Returns the global vector length of vectors in the multivector.
Definition: Komplex_MultiVector.cpp:1497
AZK_permute_ri
void AZK_permute_ri(int *options, double *params, int *proc_config, double *b, AZ_MATRIX *Amat_komplex)
Permute a Komplex system for better numerical stability.
Definition: azk_permute_ri.c:168
Komplex_Vector::SumIntoMyValues
int SumIntoMyValues(int NumEntries, double *Values, int *Indices)
Sum values into a vector with a given indexed list of values, indices are in local index space.
Definition: Komplex_Vector.cpp:93
Epetra_BlockMap::MaxElementSize
int MaxElementSize() const
Komplex_RowMatrix::RowMatrixImporter
const Epetra_Import * RowMatrixImporter() const
Returns the Epetra_Import object that contains the import operations for distributed operations.
Definition: Komplex_RowMatrix.cpp:335
AZK_create_matrix_c2k
void AZK_create_matrix_c2k(int options[], double params[], int proc_config[], AZ_MATRIX *Amat_complex, AZ_MATRIX **Amat_komplex)
Create Komplex matrix from Complex matrix.
Definition: azk_create_matrix.c:137
Komplex_MultiVector::MinValue
int MinValue(double *Result) const
Compute minimum value of each vector in multivector.
Definition: Komplex_MultiVector.cpp:926
AZK_destroy_vector
void AZK_destroy_vector(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, double **vk)
Destroy a Komplex vector.
Definition: azk_destroy_vector.c:140
Komplex_RowMatrix::Apply
int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
Definition: Komplex_RowMatrix.cpp:351
Epetra_IntVector
Epetra_MultiVector::SumIntoMyValue
int SumIntoMyValue(int MyRow, int VectorIndex, double ScalarValue)
AZK_create_linsys_ri2k
void AZK_create_linsys_ri2k(double *xr, double *xi, double *br, double *bi, int *options, double *params, int *proc_config, AZ_MATRIX *Amat_real, double *val_imag, double **x, double **b, AZ_MATRIX **Amat_komplex)
Create Komplex System from Real and Imaginary Parts.
Definition: azk_create_linsys.c:300
Komplex_RowMatrix::ApplyInverse
int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
Definition: Komplex_RowMatrix.cpp:356
Komplex_RowMatrix::Scale
int Scale(double ScalarConstant)
Multiply all values in the matrix by a constant value (in place: A <- ScalarConstant * A).
Definition: Komplex_RowMatrix.cpp:190
Komplex_Vector::operator[]
double & operator[](int index)
Element access function.
Definition: Komplex_Vector.cpp:148
Komplex_RowMatrix::NumMyRowEntries
int NumMyRowEntries(int MyRow, int &NumEntries) const
Return the current number of values stored for the specified local row.
Definition: Komplex_RowMatrix.cpp:315
Komplex_MultiVector::ReplaceGlobalValue
int ReplaceGlobalValue(int GlobalRow, int VectorIndex, double ScalarValue)
Replace current value at the specified (GlobalRow, VectorIndex) location with ScalarValue.
Definition: Komplex_MultiVector.cpp:242
Komplex_RowMatrix::ExtractDiagonalCopy
int ExtractDiagonalCopy(Epetra_Vector &Diagonal) const
Returns a copy of the main diagonal in a user-provided vector.
Definition: Komplex_RowMatrix.cpp:319
Komplex_RowMatrix::IndicesAreLocal
bool IndicesAreLocal() const
If matrix indices have been transformed to local, this query returns true; otherwise it returns false...
Definition: Komplex_RowMatrix.cpp:138
Komplex_Ordering::KForm
Komplex_KForms KForm(void)
Returns the current K form.
Definition: Komplex_Ordering.cpp:87
Komplex_MultiVector::SumIntoMyValue
int SumIntoMyValue(int MyRow, int VectorIndex, double ScalarValue)
Add ScalarValue to existing value at the specified (MyRow, VectorIndex) location.
Definition: Komplex_MultiVector.cpp:404
Komplex_MultiVector::EpetraMultiVector
Epetra_MultiVector * EpetraMultiVector() const
Vector access function.
Definition: Komplex_MultiVector.cpp:1311
Epetra_MultiVector::Abs
int Abs(const Epetra_MultiVector &A)
AZK_create_vector_g2k
void AZK_create_vector_g2k(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, double *vr, double *vi, double **vk)
Create Komplex vector from Real and Imaginary Parts.
Definition: azk_create_vector.c:205
Epetra_BlockMap::LinearMap
bool LinearMap() const
Epetra_BlockMap::NumGlobalElements
int NumGlobalElements() const
Komplex_MultiVector::ComplexNorm1
int ComplexNorm1(double *Result) const
Compute the 1-norm of each vector, regarded as a complex vector, in multivector.
Definition: Komplex_MultiVector.cpp:678
Epetra_Comm
Komplex_Vector::Norm1
int Norm1(double &Result) const
Compute 1-norm of the this vector.
Definition: Komplex_Vector.cpp:128
Epetra_MultiVector::SumIntoGlobalValue
int SumIntoGlobalValue(int GlobalRow, int VectorIndex, double ScalarValue)
AZK_create_matrix_g2k
void AZK_create_matrix_g2k(int options[], double params[], int proc_config[], double c0r, double c0i, AZ_MATRIX *Amat_mat0, double c1r, double c1i, AZ_MATRIX *Amat_mat1, AZ_MATRIX **Amat_komplex)
Create Komplex Matrix from General Matrix.
Definition: azk_create_matrix.c:436
Komplex_RowMatrix::Filled
bool Filled() const
If this matrix has been filled, this query returns true; otherwise it returns false.
Definition: Komplex_RowMatrix.cpp:126
Epetra_MultiVector::ReplaceMyValue
int ReplaceMyValue(int MyRow, int VectorIndex, double ScalarValue)
Komplex_Vector::NormInf
int NormInf(double &Result) const
Compute Inf-norm of the this vector.
Definition: Komplex_Vector.cpp:138
AZK_create_matrix_g2k
void AZK_create_matrix_g2k(int options[], double params[], int proc_config[], double c0r, double c0i, AZ_MATRIX *Amat_mat0, double c1r, double c1i, AZ_MATRIX *Amat_mat1, AZ_MATRIX **Amat_komplex)
Create Komplex Matrix from General Matrix.
Definition: azk_create_matrix.c:436
Komplex_MultiVector::CreateOtherMap
void CreateOtherMap()
Creates a map one-half or twice the size of the existing map, allowing for return of the real parts,...
Definition: Komplex_MultiVector.cpp:528
Komplex_LinearProblem::Komplex_LinearProblem
Komplex_LinearProblem(double c0r, double c0i, const Epetra_RowMatrix &A0, double c1r, double c1i, const Epetra_RowMatrix &A1, const Epetra_MultiVector &Xr, const Epetra_MultiVector &Xi, const Epetra_MultiVector &Br, const Epetra_MultiVector &Bi)
Komplex_LinearProblem constructor.
Definition: Komplex_LinearProblem.cpp:52
Komplex_MultiVector::Update
int Update(double ScalarA, const Komplex_MultiVector &A, double ScalarThis)
Update multivector values with scaled values of A, this = ScalarThis*this + ScalarA*A.
Definition: Komplex_MultiVector.cpp:612
Komplex_Operator::Comm
const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
Definition: Komplex_Operator.cpp:96
Komplex_RowMatrix::RowMap
const Epetra_Map & RowMap() const
Returns the Epetra_Map object associated with the rows of this matrix.
Definition: Komplex_RowMatrix.cpp:158
Epetra_RowMatrix::RowMatrixRowMap
virtual const Epetra_Map & RowMatrixRowMap() const=0
Komplex_RowMatrix::NumMyDiagonals
int NumMyDiagonals() const
Returns the number of local nonzero diagonal entries, based on global row/column index comparisons.
Definition: Komplex_RowMatrix.cpp:284
Epetra_Vector::ExtractCopy
int ExtractCopy(double *V) const
Komplex_RowMatrix::NoDiagonal
bool NoDiagonal() const
If matrix has no diagonal entries in global index space, this query returns true; otherwise it return...
Definition: Komplex_RowMatrix.cpp:146
Komplex_MultiVector::ImagVector
Epetra_Vector * ImagVector(int index) const
Single vector conversion to Epetra_Vector, including only the imaginary values.
Definition: Komplex_MultiVector.cpp:1382
Epetra_CrsMatrix
Epetra_DataAccess.h
Komplex_RowMatrix::MaxNumEntries
int MaxNumEntries() const
Returns the maximum of NumMyRowEntries() over all rows.
Definition: Komplex_RowMatrix.cpp:323
Copy
Definition: Komplex_DataAccess.hpp:54
Komplex_RowMatrix::Importer
const Epetra_Import * Importer() const
Returns the Epetra_Import object that contains the import operations for distributed operations.
Definition: Komplex_RowMatrix.cpp:174
Komplex_Vector::SumIntoGlobalValues
int SumIntoGlobalValues(int NumEntries, double *Values, int *Indices)
Sum values into a vector with a given indexed list of values, indices are in global index space.
Definition: Komplex_Vector.cpp:88
Epetra_RowMatrix::NumMyRows
virtual int NumMyRows() const=0
Komplex_MultiVector::NormInf
int NormInf(double *Result) const
Compute the Inf-norm of each vector in multivector.
Definition: Komplex_MultiVector.cpp:744
AZK_destroy_matrix
void AZK_destroy_matrix(int options[], double params[], int proc_config[], AZ_MATRIX **Amat_komplex)
Destroy a Komplex Matrix.
Definition: azk_destroy_matrix.c:134
Komplex_Operator::OperatorRangeMap
const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
Definition: Komplex_Operator.cpp:104
Komplex_RowMatrix::IndicesAreContiguous
bool IndicesAreContiguous() const
If matrix indices are packed into single array (done in OptimizeStorage()) return true,...
Definition: Komplex_RowMatrix.cpp:142
Komplex_LinearProblem::ExtractSolution
int ExtractSolution(Epetra_MultiVector &Xr, Epetra_MultiVector &Xi)
Extrac a solution for the original complex-valued problem using the solution of the Komplex problem.
Definition: Komplex_LinearProblem.cpp:313
Epetra_MultiVector::Pointers
double ** Pointers() const
AZK_create_linsys_ri2k
void AZK_create_linsys_ri2k(double *xr, double *xi, double *br, double *bi, int *options, double *params, int *proc_config, AZ_MATRIX *Amat_real, double *val_imag, double **x, double **b, AZ_MATRIX **Amat_komplex)
Create Komplex System from Real and Imaginary Parts.
Definition: azk_create_linsys.c:300
Komplex_RowMatrix::IndexBase
int IndexBase() const
Returns the index base for row and column indices for this graph.
Definition: Komplex_RowMatrix.cpp:150
Komplex_Ordering::GlobalIndex
int GlobalIndex(int GlobalRow, int &Index)
Definition: Komplex_Ordering.cpp:130
Epetra_MultiVector::NormWeighted
int NormWeighted(const Epetra_MultiVector &Weights, double *Result) const
Epetra_MultiVector::SetSeed
int SetSeed(unsigned int Seed_in)
Komplex_Vector::ReplaceMyValues
int ReplaceMyValues(int NumEntries, double *Values, int *Indices)
Replace values in a vector with a given indexed list of values, indices are in local index space.
Definition: Komplex_Vector.cpp:83
AZK_create_vector_ri2k
void AZK_create_vector_ri2k(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, double *vr, double *vi, double **vk)
Create Komplex vector from Real and Imaginary Parts.
Definition: azk_create_vector.c:245
Komplex_Vector::Komplex_Vector
Komplex_Vector(const Epetra_BlockMap &Map, bool zeroOut=true)
Basic Komplex_Vector constuctor.
Definition: Komplex_Vector.cpp:48
Komplex_RowMatrix::RowMatrixColMap
const Epetra_Map & RowMatrixColMap() const
Returns the Epetra_Map object associated with columns of this matrix.
Definition: Komplex_RowMatrix.cpp:331
Komplex_MultiVector::RealValues
double *& RealValues(int i) const
Vector access function.
Definition: Komplex_MultiVector.cpp:1395
Komplex_MultiVector::ComplexNorm2
int ComplexNorm2(double *Result) const
Compute the 2-norm of each vector, regarded as a complex vector, in multivector.
Definition: Komplex_MultiVector.cpp:739
Komplex_RowMatrix::DomainMap
const Epetra_Map & DomainMap() const
Returns the Epetra_Map object associated with the domain of this matrix operator.
Definition: Komplex_RowMatrix.cpp:166
Komplex_LinearProblem::~Komplex_LinearProblem
virtual ~Komplex_LinearProblem()
Komplex_LinearProblem Destructor.
Definition: Komplex_LinearProblem.cpp:194
Epetra_BlockMap::GID
int GID(int LID) const
Epetra_MultiVector::Scale
int Scale(double ScalarValue)
Komplex_RowMatrix::PutScalar
int PutScalar(double ScalarConstant)
Initialize all values in the matrix with constant value.
Definition: Komplex_RowMatrix.cpp:186
Komplex_MultiVector::NormWeighted
int NormWeighted(const Epetra_MultiVector &Weights, double *Result) const
Compute the Weighted 2-norm (RMS Norm) of each vector in multivector.
Definition: Komplex_MultiVector.cpp:823
Komplex_RowMatrix::NumMyRows
int NumMyRows() const
Returns the number of matrix rows owned by the calling processor.
Komplex_MultiVector::Dot
int Dot(const Komplex_MultiVector &A, double *Result) const
Computes dot product of each corresponding pair of vectors.
Definition: Komplex_MultiVector.cpp:537
Komplex_RowMatrix::ExtractGlobalRowCopy
int ExtractGlobalRowCopy(int GlobalRow, int Length, int &NumEntries, double *Values, int *Indices) const
Returns a copy of the specified global row in user-provided arrays.
Definition: Komplex_RowMatrix.cpp:292
Epetra_MultiVector::GlobalLength
int GlobalLength() const
Epetra_RowMatrix
AZK_extract_solution_k2ri
void AZK_extract_solution_k2ri(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, AZ_PRECOND *Prec, double *vk, double *vr, double *vi)
Extract real/imaginary parts of a complex vector from a Komplex vector.
Definition: azk_extract_solution.c:232
Komplex_RowMatrix::LowerTriangular
bool LowerTriangular() const
If matrix is lower triangular in local index space, this query returns true; otherwise it returns fal...
Definition: Komplex_RowMatrix.cpp:248
Komplex_MultiVector::operator=
Komplex_MultiVector & operator=(const Komplex_MultiVector &Source)
= Operator.
Definition: Komplex_MultiVector.cpp:1143
AZK_destroy_precon
void AZK_destroy_precon(int *options, double *params, int *proc_config, AZ_MATRIX *Amat, AZ_PRECOND **Prec)
Destroy a Komplex preconditioner.
Definition: azk_destroy_precon.c:87
Epetra_DataAccess
Epetra_DataAccess
Komplex_MultiVector::Random
int Random()
Set multivector values to random numbers.
Definition: Komplex_MultiVector.cpp:511
Komplex_Operator::SetUseTranspose
int SetUseTranspose(bool UseTranspose)
If set true, the transpose of this operator will be applied.
Definition: Komplex_Operator.cpp:66
Komplex_MultiVector::Scale
int Scale(double ScalarValue)
Scale the current values of a multivector, this = ScalarValue*this.
Definition: Komplex_MultiVector.cpp:577
Epetra_MultiVector::MaxValue
int MaxValue(double *Result) const
Epetra_CrsMatrix::ExtractMyRowView
int ExtractMyRowView(int MyRow, int &NumEntries, double *&Values, int *&Indices) const
AZK_create_linsys_c2k
void AZK_create_linsys_c2k(double *xc, double *bc, int *options, double *params, int *proc_config, AZ_MATRIX *Amat_complex, double **x, double **b, AZ_MATRIX **Amat_komplex)
Create Komplex System from Complex System.
Definition: azk_create_linsys.c:150
Komplex_Operator
Komplex_Operator: A class for using complex-valued double-precision operators stored in equivalent re...
Definition: Komplex_Operator.h:81
Komplex_RowMatrix::Label
const char * Label() const
Returns a character string describing the operator.
Definition: Komplex_RowMatrix.cpp:343
AZK_destroy_matrix
void AZK_destroy_matrix(int options[], double params[], int proc_config[], AZ_MATRIX **Amat_komplex)
Destroy a Komplex Matrix.
Definition: azk_destroy_matrix.c:134
Epetra_MultiVector::ReplaceMap
int ReplaceMap(const Epetra_BlockMap &map)
Komplex_MultiVector::PutScalar
int PutScalar(double ScalarConstant)
Initialize all values in a multivector with constant value.
Definition: Komplex_MultiVector.cpp:458
Komplex_RowMatrix::NumGlobalDiagonals
int NumGlobalDiagonals() const
Returns the number of global nonzero diagonal entries, based on global row/column index comparisons.
Definition: Komplex_RowMatrix.cpp:288
Komplex_RowMatrix::ExtractMyRowCopy
int ExtractMyRowCopy(int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
Returns a copy of the specified local row in user-provided arrays.
Definition: Komplex_RowMatrix.cpp:307
Komplex_RowMatrix::ReplaceDiagonalValues
int ReplaceDiagonalValues(const Epetra_Vector &Diagonal)
Replaces diagonal values of the matrix with those in the user-provided vector.
Definition: Komplex_RowMatrix.cpp:194
Epetra_LinearProblem
AZK_destroy_linsys
void AZK_destroy_linsys(int *options, double *params, int *proc_config, double **x, double **b, AZ_MATRIX **Amat_komplex)
Destroy a Komplex System.
Definition: azk_destroy_linsys.c:141
Epetra_BlockMap::MyGlobalElements
int MyGlobalElements(int *MyGlobalElementList) const
Komplex_LinearProblem::UpdateValues
int UpdateValues(double c0r, double c0i, const Epetra_RowMatrix &A0, double c1r, double c1i, const Epetra_RowMatrix &A1, const Epetra_MultiVector &Xr, const Epetra_MultiVector &Xi, const Epetra_MultiVector &Br, const Epetra_MultiVector &Bi)
Update the values of the equivalent real valued system.
Definition: Komplex_LinearProblem.cpp:65
Komplex_RowMatrix::NumGlobalRows
int NumGlobalRows() const
Returns the number of global matrix rows.
Definition: Komplex_RowMatrix.cpp:272
Komplex_Ordering::MyIndex
int MyIndex(int MyRow, int &Index)
Definition: Komplex_Ordering.cpp:156
Komplex_Operator::~Komplex_Operator
~Komplex_Operator()
Destructor.
Definition: Komplex_Operator.cpp:62
Komplex_DataAccess.hpp
Komplex_DataAccess Mode enumerable type.
Epetra_BlockMap::SameAs
bool SameAs(const Epetra_BlockMap &Map) const
Komplex_MultiVector::ImagMultiVector
Epetra_MultiVector * ImagMultiVector() const
Conversion of imaginary parts to Epetra_MultiVector.
Definition: Komplex_MultiVector.cpp:1341
Epetra_BlockMap
Epetra_Vector
Komplex_Ordering::~Komplex_Ordering
virtual ~Komplex_Ordering(void)
Komplex_Ordering destructor.
Definition: Komplex_Ordering.cpp:83
Komplex_LinearProblem
Komplex_LinearProblem: A class for forming an equivalent real formulation of a complex valued problem...
Definition: Komplex_LinearProblem.h:108
Komplex_Operator::NormInf
double NormInf() const
Returns the infinity norm of the global matrix.
Definition: Komplex_Operator.cpp:80
Komplex_Operator::OperatorDomainMap
const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
Definition: Komplex_Operator.cpp:100
Komplex_MultiVector::Print
virtual void Print(ostream &os) const
Print method.
Definition: Komplex_MultiVector.cpp:1533
Epetra_MultiVector::MyLength
int MyLength() const
Komplex_Operator::HasNormInf
bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Definition: Komplex_Operator.cpp:92
Komplex_MultiVector::ReplaceMap
int ReplaceMap(const Epetra_BlockMap &map)
Replace map, only if new map has same point-structure as current map.
Definition: Komplex_MultiVector.cpp:1516
Komplex_MultiVector::ComplexNormInf
int ComplexNormInf(double *Result) const
Compute the Inf-norm of each vector, regarded as a comnplex vector, in multivector.
Definition: Komplex_MultiVector.cpp:791
Komplex_RowMatrix::HasNormInf
bool HasNormInf() const
Returns true because this class can compute an Inf-norm.
Definition: Komplex_RowMatrix.cpp:361
Komplex_MultiVector::~Komplex_MultiVector
virtual ~Komplex_MultiVector()
Komplex_MultiVector destructor.
Definition: Komplex_MultiVector.cpp:229
Komplex_MultiVector::Komplex_MultiVector
Komplex_MultiVector(const Epetra_BlockMap &Map, int NumVectors, bool RHS, bool zeroOut=true, Komplex_KForms KForm=K1)
Basic Komplex_MultiVector constuctor.
Definition: Komplex_MultiVector.cpp:52
Komplex_Vector::Print
void Print(ostream &os) const
Print method.
Definition: Komplex_Vector.cpp:168
Epetra_RowMatrix::ExtractMyRowCopy
virtual int ExtractMyRowCopy(int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const=0
Komplex_RowMatrix::OperatorDomainMap
const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this matrix operator.
Komplex_MultiVector::KForm
Komplex_KForms KForm() const
Returns the current K form.
Definition: Komplex_MultiVector.cpp:1506
AZK_permute_ri
void AZK_permute_ri(int *options, double *params, int *proc_config, double *b, AZ_MATRIX *Amat_komplex)
Permute a Komplex system for better numerical stability.
Definition: azk_permute_ri.c:168
Epetra_MultiVector::Reciprocal
int Reciprocal(const Epetra_MultiVector &A)
Komplex_MultiVector::MaxValue
int MaxValue(double *Result) const
Compute maximum value of each vector in multivector.
Definition: Komplex_MultiVector.cpp:993
Epetra_IntSerialDenseVector
Epetra_RowMatrix::RowMatrixColMap
virtual const Epetra_Map & RowMatrixColMap() const=0
Komplex_Vector::Norm2
int Norm2(double &Result) const
Compute 2-norm of the this vector.
Definition: Komplex_Vector.cpp:133
Epetra_RowMatrix::MaxNumEntries
virtual int MaxNumEntries() const=0
Epetra_CrsGraph
Komplex_Vector::ReplaceGlobalValues
int ReplaceGlobalValues(int NumEntries, double *Values, int *Indices)
Replace values in a vector with a given indexed list of values, indices are in global index space.
Definition: Komplex_Vector.cpp:78
Komplex_Operator::Label
const char * Label() const
Returns a character string describing the operator.
Definition: Komplex_Operator.cpp:84
Komplex_RowMatrix::Print
void Print(ostream &os) const
Print method.
Definition: Komplex_RowMatrix.cpp:339
AZK_destroy_precon
void AZK_destroy_precon(int *options, double *params, int *proc_config, AZ_MATRIX *Amat, AZ_PRECOND **Prec)
Destroy a Komplex preconditioner.
Definition: azk_destroy_precon.c:87
Epetra_MultiVector
Epetra_MultiVector::Dot
int Dot(const Epetra_MultiVector &A, double *Result) const
Komplex_RowMatrix::NumMyNonzeros
int NumMyNonzeros() const
Returns the number of nonzero entries owned by the calling processor.
Definition: Komplex_RowMatrix.cpp:264
AZK_create_matrix_ri2k
void AZK_create_matrix_ri2k(int options[], double params[], int proc_config[], AZ_MATRIX *Amat_real, double *val_imag, AZ_MATRIX **Amat_komplex)
Create Komplex Matrix from Real and Imaginary Parts.
Definition: azk_create_matrix.c:1073
Komplex_MultiVector::SumIntoGlobalValue
int SumIntoGlobalValue(int GlobalRow, int VectorIndex, double ScalarValue)
Add ScalarValue to existing value at the specified (GlobalRow, VectorIndex) location.
Definition: Komplex_MultiVector.cpp:296
azk_komplex.h
Include file for Aztec Komplex Library.
Epetra_MultiVector::Seed
unsigned int Seed()
AZK_create_matrix_c2k
void AZK_create_matrix_c2k(int options[], double params[], int proc_config[], AZ_MATRIX *Amat_complex, AZ_MATRIX **Amat_komplex)
Create Komplex matrix from Complex matrix.
Definition: azk_create_matrix.c:137
Epetra_MapColoring
Epetra_Operator::OperatorRangeMap
virtual const Epetra_Map & OperatorRangeMap() const=0
Komplex_Operator::Komplex_Operator
Komplex_Operator(Epetra_DataAccess CV, Epetra_Operator *Operator, Komplex_KForms KForm=K1)
Komplex_Operator constructor from one object.
Definition: Komplex_Operator.cpp:45
Komplex_RowMatrix::RangeMap
const Epetra_Map & RangeMap() const
Returns the Epetra_Map object associated with the range of this matrix operator.
Definition: Komplex_RowMatrix.cpp:170
Komplex_MultiVector::EpetraVector
Epetra_Vector * EpetraVector(int index) const
Single vector conversion to Epetra_Vector.
Definition: Komplex_MultiVector.cpp:1356
Komplex_RowMatrix::Exporter
const Epetra_Export * Exporter() const
Returns the Epetra_Export object that contains the export operations for distributed operations.
Definition: Komplex_RowMatrix.cpp:178
Komplex_RowMatrix::IndicesAreGlobal
bool IndicesAreGlobal() const
If matrix indices have not been transformed to local, this query returns true; otherwise it returns f...
Definition: Komplex_RowMatrix.cpp:134
Epetra_BlockMap::IndexBase
int IndexBase() const
Komplex_MultiVector::RealMultiVector
Epetra_MultiVector * RealMultiVector() const
Conversion of real parts to Epetra_MultiVector.
Definition: Komplex_MultiVector.cpp:1326
Komplex_Vector::operator=
Komplex_Vector & operator=(const Komplex_Vector &Source)
= Operator.
Definition: Komplex_Vector.cpp:143
Komplex_MultiVector::Seed
unsigned int Seed() const
Get seed from Random function.
Definition: Komplex_MultiVector.cpp:1138
AZK_extract_solution_k2ri
void AZK_extract_solution_k2ri(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, AZ_PRECOND *Prec, double *vk, double *vr, double *vi)
Extract real/imaginary parts of a complex vector from a Komplex vector.
Definition: azk_extract_solution.c:232
AZK_create_precon
void AZK_create_precon(int *options, double *params, int *proc_config, double *x, double *b, AZ_MATRIX *Amat, AZ_PRECOND **Prec)
Create a Preconditioner for a Komplex matrix.
Definition: azk_create_precon.c:93
Komplex_MultiVector::SwitchKForm
int SwitchKForm(Komplex_KForms NewKForm)
Switches the current K form.
Definition: Komplex_MultiVector.cpp:1511
Komplex_MultiVector::SetSeed
int SetSeed(unsigned int Seed)
Set seed for Random function.
Definition: Komplex_MultiVector.cpp:1121
Komplex_MultiVector::Abs
int Abs(const Komplex_MultiVector &A)
Puts element-wise absolute values of input multivector in target.
Definition: Komplex_MultiVector.cpp:543
Komplex_Operator::ApplyInverse
int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
Definition: Komplex_Operator.cpp:75
AZK_create_linsys_g2k
void AZK_create_linsys_g2k(double *xr, double *xi, double *br, double *bi, int *options, double *params, int *proc_config, double c0r, double c0i, AZ_MATRIX *Amat_mat0, double c1r, double c1i, AZ_MATRIX *Amat_mat1, double **x, double **b, AZ_MATRIX **Amat_komplex)
Create Komplex System from General System.
Definition: azk_create_linsys.c:227
Komplex_RowMatrix::NormOne
double NormOne() const
Returns the one norm of the global matrix.
Definition: Komplex_RowMatrix.cpp:260
Komplex_MultiVector::RealVector
Epetra_Vector * RealVector(int index) const
Single vector conversion to Epetra_Vector, including only the real values.
Definition: Komplex_MultiVector.cpp:1369
Komplex_Ordering::PermutationVector
int PermutationVector(int *Perms)
Definition: Komplex_Ordering.cpp:115
Komplex_RowMatrix::Comm
const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this matrix.
Definition: Komplex_RowMatrix.cpp:182
Komplex_MultiVector::Reciprocal
int Reciprocal(const Komplex_MultiVector &A)
Puts element-wise reciprocal values of input multivector in target.
Definition: Komplex_MultiVector.cpp:560
AZK_create_vector_c2k
void AZK_create_vector_c2k(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, double *vc, double **vk)
Create Komplex vector from Complex vector.
Definition: azk_create_vector.c:142
AZK_extract_solution_k2c
void AZK_extract_solution_k2c(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, AZ_PRECOND *Prec, double *vk, double *vc)
Extract a Complex vector from a Komplex vector.
Definition: azk_extract_solution.c:144
Komplex_MultiVector::operator[]
double *& operator[](int i)
Vector access function.
Definition: Komplex_MultiVector.cpp:1171
Komplex_Operator::UseTranspose
bool UseTranspose() const
Returns the current UseTranspose setting.
Definition: Komplex_Operator.cpp:88
Epetra_VbrMatrix
Epetra_Operator
Epetra_Operator::OperatorDomainMap
virtual const Epetra_Map & OperatorDomainMap() const=0
Epetra_Export
Epetra_Map
Komplex_Vector::Scale
int Scale(double ScalarValue)
Scale the current values of the this vector, this = ScalarValue*this.
Definition: Komplex_Vector.cpp:118
Epetra_Comm::MyPID
virtual int MyPID() const=0
Komplex_Vector
Komplex_Vector: A class for constructing and using dense vectors on a parallel computer.
Definition: Komplex_Vector.h:106
Komplex_RowMatrix::Solve
int Solve(bool Upper, bool Trans, bool UnitDiagonal, const Epetra_Vector &x, Epetra_Vector &y) const
Returns the result of a solve using the Komplex_RowMatrix on a Epetra_Vector x in y.
Definition: Komplex_RowMatrix.cpp:214
Epetra_BlockMap::MyGID
bool MyGID(int GID_in) const
Komplex_Ordering::GlobalScaling
int GlobalScaling(int GlobalRow, double &Scalar)
Definition: Komplex_Ordering.cpp:143
Komplex_Ordering::Komplex_Ordering
Komplex_Ordering(const Epetra_BlockMap &Map, Komplex_KForms KForm, bool IsOneObject)
Basic Komplex_Ordering constuctor.
Definition: Komplex_Ordering.cpp:48
Epetra_Import
Komplex_RowMatrix::Multiply
int Multiply(bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Komplex_RowMatrix multiplied by a Epetra_MultiVector X in Y.
Definition: Komplex_RowMatrix.cpp:207
Komplex_RowMatrix::RowMatrixRowMap
const Epetra_Map & RowMatrixRowMap() const
Returns the Epetra_Map object associated with the rows of this matrix.
Definition: Komplex_RowMatrix.cpp:327
Epetra_MultiVector::NumVectors
int NumVectors() const
Komplex_MultiVector::MeanValue
int MeanValue(double *Result) const
Compute mean (average) value of each vector in multivector.
Definition: Komplex_MultiVector.cpp:1062
Komplex_MultiVector::Norm2
int Norm2(double *Result) const
Compute the 2-norm of each vector in multivector.
Definition: Komplex_MultiVector.cpp:710
AZ_KOMPLEX_STRUCT
Definition: azk_komplex.h:166
Epetra_MultiVector::Update
int Update(double ScalarA, const Epetra_MultiVector &A, double ScalarThis)
AZK_create_vector_c2k
void AZK_create_vector_c2k(int *options, double *params, int *proc_config, AZ_MATRIX *Amat_komplex, double *vc, double **vk)
Create Komplex vector from Complex vector.
Definition: azk_create_vector.c:142