ml_operator.h File Reference

#include "ml_common.h"
#include "ml_defs.h"
#include "ml_memory.h"
#include "ml_bdrypts.h"
#include "ml_1level.h"
#include "ml_operatoragx.h"
#include "ml_vec.h"
#include "ml_gridagx.h"
#include "ml_mls.h"
#include "ml_utils.h"
#include "ml_op_utils.h"

Include dependency graph for ml_operator.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ML_Function_Struct
struct  ML_GetrowFunc_Struct
struct  ML_Operator_Subspace_Struct
struct  ML_Aux_Data
struct  ML_Operator_Struct
 This data structure defines an enriched operator class for the specification of the discretization matrix, the restriction and the prolongation operator. More...
struct  amalg_drop
struct  ml_matscale
struct  ml_matvscale

Defines

#define ML_TYPE_UNKNOWN   0
#define ML_TYPE_ROW_MATRIX   1
#define ML_TYPE_CRS_MATRIX   2
#define ML_TYPE_VBR_MATRIX   3

Typedefs

typedef struct
ML_Operator_Subspace_Struct 
ML_Operator_Subspace
typedef struct ML_Operator_Struct ML_Operator
typedef struct ML_Function_Struct ML_Function
typedef struct ML_GetrowFunc_Struct ML_GetrowFunc

Functions

void ML_Aux_Data_Create (ML_Aux_Data **ptr)
void ML_Aux_Data_Destroy (ML_Aux_Data **ptr)
ML_Aux_DataML_Aux_Data_Clone (ML_Aux_Data *original)
int ML_Operator_BlockPartition (ML_Operator *matrix, int n, int *nblks, int *pnode_part, ML_Partitioner which_partitioner, double *x_coord, double *y_coord, double *z_coord, int num_PDE_eqns)
ML_OperatorML_Operator_Create (ML_Comm *comm)
int ML_Operator_Destroy (ML_Operator **)
ML_OperatorML_Operator_halfClone (ML_Operator *original)
int ML_Operator_halfClone_Init (ML_Operator *mat, ML_Operator *original)
int ML_Operator_halfClone_Clean (ML_Operator *mat)
int ML_Operator_halfClone_Destroy (ML_Operator **mat)
int ML_Operator_Init (ML_Operator *, ML_Comm *comm)
int ML_Operator_Clean (ML_Operator *)
int ML_Operator_Dump (ML_Operator *Ke, double *, double *, char *str, int)
int ML_Operator_Set_Label (ML_Operator *, char *str)
int ML_Operator_Set_1Levels (ML_Operator *, ML_1Level *, ML_1Level *)
int ML_Operator_Set_BdryPts (ML_Operator *, ML_BdryPts *)
int ML_Operator_Set_ApplyFuncData (ML_Operator *, int, int, void *, int, int(*func)(ML_Operator *, int, double *, int, double *), int)
int ML_Operator_Set_ApplyFunc (ML_Operator *, int(*func)(ML_Operator *, int, double *, int, double *))
int ML_Operator_Set_Diag (ML_Operator *, int, double *)
int ML_Operator_Set_Getrow (ML_Operator *, int, int(*func)(ML_Operator *, int, int *, int, int *, double *, int *))
int ML_Operator_Getrow (ML_Operator *, int, int *, int, int *, double *, int *)
int ML_Operator_Get_Diag (ML_Operator *Amat, int length, double **diag)
int ML_Operator_Apply (ML_Operator *, int, double *, int, double *)
int ML_Operator_ApplyAndResetBdryPts (ML_Operator *, int, double *, int olen, double *)
int ML_Operator_Add (ML_Operator *A, ML_Operator *B, ML_Operator *C, int matrix_type, double scalar)
int ML_Operator_MoveFromHierarchyAndClean (ML_Operator *newmat, ML_Operator *hier)
int ML_Operator_Move2HierarchyAndDestroy (ML_Operator **newmat, ML_Operator *hier)
int ML_Operator_Transpose (ML_Operator *Amat, ML_Operator *Amat_trans)
int ML_Operator_Check_Getrow (ML_Operator *, int, char *)
double ML_Operator_MaxNorm (ML_Operator *matrix, int divide_diag)
int ML_Operator_Print (ML_Operator *matrix, const char label[])
int ML_Operator_ComputeNumNzs (ML_Operator *matrix)
int ML_implicitscale_Getrow (ML_Operator *data, int N_requested_rows, int requested_rows[], int allocated_space, int columns[], double values[], int row_lengths[])
int ML_implicitscale_Matvec (ML_Operator *Amat_in, int ilen, double p[], int olen, double ap[])
ML_OperatorML_Operator_ImplicitlyScale (ML_Operator *Amat, double scalar, int OnDestroy_FreeChild)
void ML_implicitscale_Destroy (void *data)
int ML_implicitvscale_Getrow (ML_Operator *data, int N_requested_rows, int requested_rows[], int allocated_space, int columns[], double values[], int row_lengths[])
int ML_implicitvscale_Matvec (ML_Operator *Amat_in, int ilen, double p[], int olen, double ap[])
ML_OperatorML_Operator_ImplicitlyVScale (ML_Operator *Amat, double *scale, int OnDestroy_FreeChild)
int ML_Operator_ExplicitDinvA (int BlockSize, struct MLSthing *Dinv, ML_Operator *A)
ML_OperatorML_Operator_ImplicitlyBlockDinvScale (ML_Operator *Amat)
void ML_implicitvscale_Destroy (void *data)
int ML_implicitvcscale_Getrow (ML_Operator *data, int N_requested_rows, int requested_rows[], int allocated_space, int columns[], double values[], int row_lengths[])
ML_OperatorML_Operator_ImplicitlyVCScale (ML_Operator *Amat, double *scale, int OnDestroy_FreeChild)
int ML_CSR_DropSmall (ML_Operator *Pe, double AbsoluteDrop, double RelativeRowDrop, double RelativeColDrop)
ML_OperatorML_CSRmatrix_ColumnSubset (ML_Operator *Amat, int Nsubset, int subset[])
int ML_Operator_Set_SpectralNormScheme_Calc (ML_Operator *mat)
int ML_Operator_Set_SpectralNormScheme_Anorm (ML_Operator *mat)
int ML_Operator_Set_SpectralNormScheme_Anasazi (ML_Operator *mat)
int ML_Operator_Set_SpectralNormScheme_PowerMethod (ML_Operator *mat)
int ML_Operator_Set_SpectralNorm_Iterations (ML_Operator *mat, int its)
int ML_Operator_AmalgamateAndDropWeak (ML_Operator *Amat, int block_size, double drop_tolerance)
int ML_Operator_UnAmalgamateAndDropWeak (ML_Operator *Amat, int block_size, double drop_tolerance)
int ML_amalg_drop_getrow (ML_Operator *data, int N_requested_rows, int requested_rows[], int allocated_space, int columns[], double values[], int row_lengths[])
int ML_Operator_GetDistributedDiagBlocks (ML_Operator *mat, int *blkinfo, int **new_ja, double **new_aa)
double ML_Operator_GetMaxEig (ML_Operator *Amat)
ML_Operator ** ML_Operator_ArrayCreate (int length)
int ML_Operator_ArrayDestroy (ML_Operator **array, int length)
int ML_Operator_SetSubspace (ML *ml, double **vectors, int numvecs, int vecleng)
int ML_Operator_Amalgamate_Vec_Trans (ML_Operator *Amat, int *blocked, int **unblocked, int *size)
int AZ_get_MSR_arrays (ML_Operator *, int **bindx, double **val)
int ML_Operator_GetFlops (ML_Operator *mat)
void ML_Operator_GetGlobalDimensions (ML_Operator *A, int *nrows, int *ncols)
int ML_Operator_MisRootPts (ML_Operator *Amatrix, int num_PDE_eqns, int **)
int ML_Epetra_CRSinsert (ML_Operator *, int, int *, double *, int)


Define Documentation

#define ML_TYPE_CRS_MATRIX   2

#define ML_TYPE_ROW_MATRIX   1

#define ML_TYPE_UNKNOWN   0

#define ML_TYPE_VBR_MATRIX   3


Typedef Documentation


Function Documentation

int AZ_get_MSR_arrays ( ML_Operator ,
int **  bindx,
double **  val 
)

int ML_amalg_drop_getrow ( ML_Operator data,
int  N_requested_rows,
int  requested_rows[],
int  allocated_space,
int  columns[],
double  values[],
int  row_lengths[] 
)

ML_Aux_Data* ML_Aux_Data_Clone ( ML_Aux_Data original  ) 

void ML_Aux_Data_Create ( ML_Aux_Data **  ptr  ) 

void ML_Aux_Data_Destroy ( ML_Aux_Data **  ptr  ) 

int ML_CSR_DropSmall ( ML_Operator Pe,
double  AbsoluteDrop,
double  RelativeRowDrop,
double  RelativeColDrop 
)

ML_Operator* ML_CSRmatrix_ColumnSubset ( ML_Operator Amat,
int  Nsubset,
int  subset[] 
)

int ML_Epetra_CRSinsert ( ML_Operator ,
int  ,
int *  ,
double *  ,
int   
)

void ML_implicitscale_Destroy ( void *  data  ) 

int ML_implicitscale_Getrow ( ML_Operator data,
int  N_requested_rows,
int  requested_rows[],
int  allocated_space,
int  columns[],
double  values[],
int  row_lengths[] 
)

int ML_implicitscale_Matvec ( ML_Operator Amat_in,
int  ilen,
double  p[],
int  olen,
double  ap[] 
)

int ML_implicitvcscale_Getrow ( ML_Operator data,
int  N_requested_rows,
int  requested_rows[],
int  allocated_space,
int  columns[],
double  values[],
int  row_lengths[] 
)

void ML_implicitvscale_Destroy ( void *  data  ) 

int ML_implicitvscale_Getrow ( ML_Operator data,
int  N_requested_rows,
int  requested_rows[],
int  allocated_space,
int  columns[],
double  values[],
int  row_lengths[] 
)

int ML_implicitvscale_Matvec ( ML_Operator Amat_in,
int  ilen,
double  p[],
int  olen,
double  ap[] 
)

int ML_Operator_Add ( ML_Operator A,
ML_Operator B,
ML_Operator C,
int  matrix_type,
double  scalar 
)

int ML_Operator_Amalgamate_Vec_Trans ( ML_Operator Amat,
int *  blocked,
int **  unblocked,
int *  size 
)

int ML_Operator_AmalgamateAndDropWeak ( ML_Operator Amat,
int  block_size,
double  drop_tolerance 
)

int ML_Operator_Apply ( ML_Operator ,
int  ,
double *  ,
int  ,
double *   
)

int ML_Operator_ApplyAndResetBdryPts ( ML_Operator ,
int  ,
double *  ,
int  olen,
double *   
)

ML_Operator** ML_Operator_ArrayCreate ( int  length  ) 

int ML_Operator_ArrayDestroy ( ML_Operator **  array,
int  length 
)

int ML_Operator_BlockPartition ( ML_Operator matrix,
int  n,
int *  nblks,
int *  pnode_part,
ML_Partitioner  which_partitioner,
double *  x_coord,
double *  y_coord,
double *  z_coord,
int  num_PDE_eqns 
)

int ML_Operator_Check_Getrow ( ML_Operator ,
int  ,
char *   
)

int ML_Operator_Clean ( ML_Operator  ) 

int ML_Operator_ComputeNumNzs ( ML_Operator matrix  ) 

ML_Operator* ML_Operator_Create ( ML_Comm *  comm  ) 

int ML_Operator_Destroy ( ML_Operator **   ) 

int ML_Operator_Dump ( ML_Operator Ke,
double *  ,
double *  ,
char *  str,
int   
)

int ML_Operator_ExplicitDinvA ( int  BlockSize,
struct MLSthing *  Dinv,
ML_Operator A 
)

int ML_Operator_Get_Diag ( ML_Operator Amat,
int  length,
double **  diag 
)

int ML_Operator_GetDistributedDiagBlocks ( ML_Operator mat,
int *  blkinfo,
int **  new_ja,
double **  new_aa 
)

int ML_Operator_GetFlops ( ML_Operator mat  ) 

void ML_Operator_GetGlobalDimensions ( ML_Operator A,
int *  nrows,
int *  ncols 
)

double ML_Operator_GetMaxEig ( ML_Operator Amat  ) 

int ML_Operator_Getrow ( ML_Operator ,
int  ,
int *  ,
int  ,
int *  ,
double *  ,
int *   
)

ML_Operator* ML_Operator_halfClone ( ML_Operator original  ) 

int ML_Operator_halfClone_Clean ( ML_Operator mat  ) 

int ML_Operator_halfClone_Destroy ( ML_Operator **  mat  ) 

int ML_Operator_halfClone_Init ( ML_Operator mat,
ML_Operator original 
)

ML_Operator* ML_Operator_ImplicitlyBlockDinvScale ( ML_Operator Amat  ) 

ML_Operator* ML_Operator_ImplicitlyScale ( ML_Operator Amat,
double  scalar,
int  OnDestroy_FreeChild 
)

ML_Operator* ML_Operator_ImplicitlyVCScale ( ML_Operator Amat,
double *  scale,
int  OnDestroy_FreeChild 
)

ML_Operator* ML_Operator_ImplicitlyVScale ( ML_Operator Amat,
double *  scale,
int  OnDestroy_FreeChild 
)

int ML_Operator_Init ( ML_Operator ,
ML_Comm *  comm 
)

double ML_Operator_MaxNorm ( ML_Operator matrix,
int  divide_diag 
)

int ML_Operator_MisRootPts ( ML_Operator Amatrix,
int  num_PDE_eqns,
int **   
)

int ML_Operator_Move2HierarchyAndDestroy ( ML_Operator **  newmat,
ML_Operator hier 
)

int ML_Operator_MoveFromHierarchyAndClean ( ML_Operator newmat,
ML_Operator hier 
)

int ML_Operator_Print ( ML_Operator matrix,
const char  label[] 
)

int ML_Operator_Set_1Levels ( ML_Operator ,
ML_1Level *  ,
ML_1Level *   
)

int ML_Operator_Set_ApplyFunc ( ML_Operator ,
int(*)(ML_Operator *, int, double *, int, double *)  func 
)

int ML_Operator_Set_ApplyFuncData ( ML_Operator ,
int  ,
int  ,
void *  ,
int  ,
int(*)(ML_Operator *, int, double *, int, double *)  func,
int   
)

int ML_Operator_Set_BdryPts ( ML_Operator ,
ML_BdryPts *   
)

int ML_Operator_Set_Diag ( ML_Operator ,
int  ,
double *   
)

int ML_Operator_Set_Getrow ( ML_Operator ,
int  ,
int(*)(ML_Operator *, int, int *, int, int *, double *, int *)  func 
)

int ML_Operator_Set_Label ( ML_Operator ,
char *  str 
)

int ML_Operator_Set_SpectralNorm_Iterations ( ML_Operator mat,
int  its 
)

int ML_Operator_Set_SpectralNormScheme_Anasazi ( ML_Operator mat  ) 

int ML_Operator_Set_SpectralNormScheme_Anorm ( ML_Operator mat  ) 

int ML_Operator_Set_SpectralNormScheme_Calc ( ML_Operator mat  ) 

int ML_Operator_Set_SpectralNormScheme_PowerMethod ( ML_Operator mat  ) 

int ML_Operator_SetSubspace ( ML ml,
double **  vectors,
int  numvecs,
int  vecleng 
)

int ML_Operator_Transpose ( ML_Operator Amat,
ML_Operator Amat_trans 
)

int ML_Operator_UnAmalgamateAndDropWeak ( ML_Operator Amat,
int  block_size,
double  drop_tolerance 
)