#include <Epetra_config.h>
#include <cstdlib>
#include <cstdio>
#include <cassert>
#include <string>
#include <iostream>
#include <cmath>
◆ __cplusplus
◆ EPETRA_CHK_ERR
| #define EPETRA_CHK_ERR |
( |
|
a | ) |
|
Value:{ { int epetra_err = a; \
if ((epetra_err < 0 && Epetra_Object::GetTracebackMode() > 0) || \
(epetra_err > 0 && Epetra_Object::GetTracebackMode() > 1)) { \
cerr << "Epetra ERROR " << epetra_err << ", " \
<< __FILE__ << ", line " << __LINE__ << endl; }\
if (epetra_err != 0) return(epetra_err); }\
}
◆ EPETRA_CHK_PTR
| #define EPETRA_CHK_PTR |
( |
|
a | ) |
|
Value:{ if (a == 0 && Epetra_Object::GetTracebackMode() > 0) { \
cerr << "Epetra returning zero pointer " << ", " \
<< __FILE__ << ", line " << __LINE__ << endl; } \
return(a); \
}
◆ EPETRA_CHK_REF
| #define EPETRA_CHK_REF |
( |
|
a | ) |
|
Value:{ if (Epetra_Object::GetTracebackMode() > 0) {\
cerr << "Epetra returning default reference " << ", " \
<< __FILE__ << ", line " << __LINE__ << endl; } \
return(a); \
}
◆ EPETRA_MAX
| #define EPETRA_MAX |
( |
|
x, |
|
|
|
y |
|
) |
| (( (x) > (y) ) ? x : y) /* max function */ |
◆ EPETRA_MIN
| #define EPETRA_MIN |
( |
|
x, |
|
|
|
y |
|
) |
| (( (x) < (y) ) ? x : y) /* min function */ |
◆ EPETRA_SGN
| #define EPETRA_SGN |
( |
|
x | ) |
(((x) < 0.0) ? -1.0 : 1.0) /* sign function */ |
◆ DefaultTracebackMode
| const int DefaultTracebackMode = 0 |
◆ Epetra_FormatStdout
| const bool Epetra_FormatStdout = false |
◆ Epetra_MaxDouble
| const double Epetra_MaxDouble = 1.0E+100 |
◆ Epetra_MinDouble
| const double Epetra_MinDouble = 1.0E-100 |
◆ Epetra_Overflow
| const double Epetra_Overflow = 1.79E308 |
◆ Epetra_Underflow
| const double Epetra_Underflow = 2.23E-308 |
#define BLKSLVN_F77
Definition: my_feti_sparse_solver.hpp:54
void int int int int int double * lnz
Definition: my_feti_sparse_solver.hpp:74
void int int int int int & tmpsiz
Definition: my_feti_sparse_solver.hpp:71
void int int int int int double int int & asdef
Definition: my_feti_sparse_solver.hpp:74
void solve(double f[], double u[], int &number_iterations, int &SCLIP_status, int &max_added_corner)
static int Multiply(const Epetra_CrsMatrix &A, const Epetra_CrsMatrix &B, Epetra_CrsMatrix *&C)
void int int int int double int int & nrbm
Definition: my_feti_sparse_solver.hpp:94
void tie_down_coarse(int n, int rowbeg[], int colidx[], double vals[], int ne, int scale_option, int &num_tied_down, int *&tied_down, CLAPS_sparse_lu *&AA, double *&Xvecs)
Definition: CLIP_solver2.hpp:77
void int int int int int int int int int & nnzl
Definition: my_feti_sparse_solver.hpp:61
const int DefaultTracebackMode
Definition: Claps_ConfigDefs.hpp:178
void get_Phi_ptr(double *&Phi_ptr)
int factor(double *ANZ, int *COLPTR, int *ROWIDX, int N_, int scale_flag_=0)
Definition: Claps_ConfigDefs.hpp:131
void spmat_datfile(int nrow, int rowbegp[], int colidxp[], double val[], char fname[])
void subspace_iteration(int n, int rowbeg[], int colidx[], double vals[], bool bound_flag[], int scale_option, int &nextra, int *&extra_corner, CLAPS_sparse_lu *&A, double *&Xvecs, int ne=0)
Definition: CRD_utils.hpp:92
void int int * adj
Definition: my_feti_sparse_solver.hpp:58
void int int int int double int int int int int int int int double * rhs
Definition: my_feti_sparse_solver.hpp:82
Definition: EpetraExtCD_MatrixMatrix.hpp:49
double dotprod(double a[], double b[], int n)
void int int int * lindx
Definition: my_feti_sparse_solver.hpp:88
Definition: krylov_crd.hpp:58
Definition: CLOP_constraint.hpp:58
void mpcforces(Epetra_Vector *uLocal, Epetra_Import *ImporterStLam2Loc)
void MpcForces(double *cvals)
void CLIP_solver_init(int cdof_option, double solver_tol, int maxiter, int atype, int ndim, int local_solver, int max_orthog, int prt_debug, int prt_summary, int chk_sub_singularity, int krylov_method, int scale_option, int num_rigid_mode)
void determine_ownership()
solver_crd()
Definition: solver_crd.hpp:51
void correct(double Edof_sub[], int rbm, unsigned char nsubdof[], int ldof[], int lbound, int ubound)
void sum_scalar_multiply(double Edof_sub[], int rbm, double alpha)
#define ORDMMD2_F77
Definition: my_feti_sparse_solver.hpp:48
void MpcForces(double *cvals)
void EPmat_datfile(Epetra_CrsMatrix *A, char fname[])
int find_index(int a[], int n, int gdof)
void int int int int * perm
Definition: my_feti_sparse_solver.hpp:58
#define SYMFCT_F77
Definition: my_feti_sparse_solver.hpp:50
void int int int int double int int int int int int double * ns
Definition: my_feti_sparse_solver.hpp:94
void int int * xlindx
Definition: my_feti_sparse_solver.hpp:88
void int int int int int int int int int int & nsub
Definition: my_feti_sparse_solver.hpp:61
SCLOP_solver(int nnode_, int nelem_, int neq_, int nadj_proc_, int ndofs_deleted_, int NumberMpc_, const int E1_[], const int E2_[], const int adj_proc_[], const int H1_global_[], const int H2_[], const MPI_Comm *mpicomm_, const int gnn_[], const unsigned short *dofmap_on_node_, const double x_[], const double y_[], const double z_[], const int rowbeg_KU_[], const int colidx_KU_[], const double KU_[], const int mapdof2row_[], const int bc_node_ids_[], const int bc_node_dof_[], const MpcLocal *MpcVector_)
void normalpu(double Edof_sub[], unsigned char nsubdof[])
void int int int int double * lnx
Definition: my_feti_sparse_solver.hpp:82
void Epetra_datfile(const Epetra_CrsMatrix *A, char fname[])
Definition: solver_crd.hpp:48
void int int int int int double int int int int int double int * iprow
Definition: my_feti_sparse_solver.hpp:74
void int int int int double int int int int int int int int double double * sol
Definition: my_feti_sparse_solver.hpp:82
const bool Epetra_FormatStdout
Definition: Claps_ConfigDefs.hpp:165
void multiply(double *x, double *y)
const double Epetra_MaxDouble
Definition: Claps_ConfigDefs.hpp:56
void tie_down_coarse(int n, int rowbeg[], int colidx[], double vals[], int ne, CLAPS_sparse_lu *&AA, double *&Xvecs)
Definition: sparse_lu2.hpp:53
void int int int int int int int & defblk
Definition: my_feti_sparse_solver.hpp:61
Definition: sparse_lu.hpp:52
#define BLKSLV_F77
Definition: my_feti_sparse_solver.hpp:53
CLOP_constraint(const Epetra_CrsMatrix *A_, std::ofstream *fout_, const int print_flag_)
void int int int int int int int int & iflag
Definition: my_feti_sparse_solver.hpp:58
void int int int int double int int int int int int int int int & lrhs
Definition: my_feti_sparse_solver.hpp:88
void int int * pnode
Definition: my_feti_sparse_solver.hpp:74
void int int int int int double int int int & numZEM
Definition: my_feti_sparse_solver.hpp:74
void construct_coarse1(const Epetra_CrsMatrix *A, double rhs[], double sol[], double temp[], int rowbeg[], int colidx[], double K[], int imap[], unsigned char nsubdof[], int &csdimP, int &ndof_rot_)
Definition: CLOP_solver.hpp:69
void sort_and_cull(int a[], int n, int &m)
void int int int int int int int int int int int int int * snode
Definition: my_feti_sparse_solver.hpp:61
void int int int int int double int int int int int * def
Definition: my_feti_sparse_solver.hpp:74
virtual ~MatrixMatrix()
Definition: EpetraExtCD_MatrixMatrix.hpp:59
void scale_columns(Epetra_CrsMatrix *A, const int norm_opt, const int blocksize)
CRS_serial(double *A_, int *rowbeg_, int *colidx_, int nrow_, int ncol_, int nnode_, int *nodebeg_, int *localdof_, double *x_, double *y_, double *z_)
void solve(Epetra_Vector *uStand, const Epetra_Vector *fStand, int &num_iter, int &solver_status, int &max_added_cor)
Definition: CRS_serial.hpp:46
void int int int int int double int int int int & lbdef
Definition: my_feti_sparse_solver.hpp:74
void int int int int int int & maxsup
Definition: my_feti_sparse_solver.hpp:61
int factor(int N_, int NNZ_, int COLPTR[], int ROWIDX[], double ANZ[], int scale_flag_=0)
void statcond(unsigned char nsubdof[], unsigned char on_sub_bound[], int imap[], int rowbeg[], int colidx[], double K[], double rhs[], double sol[], double temp[], const Epetra_CrsMatrix *A)
CLOP_graph(const Epetra_CrsMatrix *A_, const Epetra_IntVector *ND_, const int overlap_, const int partition_option_, const int atype_, const int ndim_, int iwork1[], int iwork2[], int *&dofpart1, int *&dofpart2, int &npart)
CLOP_solver(const Epetra_CrsMatrix *AStandard_, const Epetra_IntVector *LDStandard_, const Epetra_MultiVector *CStandard_, const Epetra_Map *SubMap_, const Epetra_CrsMatrix *ConStandard_, const Epetra_IntVector *GNStandard_, const double *clop_params_)
Definition: CLOP_graph.hpp:59
void getmatrix_nnz(int subdofs_[], int ndof_sub, const Epetra_CrsMatrix *A, int imap[], const Epetra_Comm *Comm, int &nnz, int scale_option_)
#define BLKNS_F77
Definition: my_feti_sparse_solver.hpp:55
Definition: preconditioner_crd.hpp:57
void myzero(int *data, size_t num)
Definition: myzero.hpp:47
CLIP_solver2(CRS_serial *A_, const Epetra_Map *SubMap_, const Epetra_Map *OwnMap_, const double *clip_params_, const double *amg_params_)
void subpre(double rr[], double zz[], double rhs_work[], double sol_work[], double tmp_work[])
void factormatrix(const Epetra_CrsMatrix *A, int imap[], int rowbeg[], int colidx[], double K[])
Definition: EpetraExtCD_MatrixMatrix.hpp:56
void get_column_norm(Epetra_CrsMatrix *A, const int norm_opt, const int blocksize, double *col_norm)
void Tran(Epetra_CrsMatrix *&Tran, Epetra_Map *&RowMapMyCon, int *&mycdof, int &nx2, int *&x2_dof, int &nsub_gdofs, int sub_gdofs[], Epetra_CrsMatrix *&CtT)
void int int int int int int & rwsize
Definition: my_feti_sparse_solver.hpp:71
void int int int int int double int int int int int double int int * ipcol
Definition: my_feti_sparse_solver.hpp:74
void determine_ownership()
void int int int int int double int int int int int double int int int double * temp
Definition: my_feti_sparse_solver.hpp:74
const double Epetra_Underflow
Definition: Claps_ConfigDefs.hpp:58
void solve(double f[], double u[], int &number_iterations, int &SCLOP_status)
void Components(int component_[], int &comp_num)
int initialize_solve(double u[], double r[])
int solve(int NRHS, double RHS[], double SOL[], double TEMP[])
void int & nnza
Definition: my_feti_sparse_solver.hpp:61
void int int int * invp
Definition: my_feti_sparse_solver.hpp:58
virtual ~preconditioner_crd()
Definition: preconditioner_crd.hpp:61
void int int int int double int int int int int int int int int int double int double int & ltemp
Definition: my_feti_sparse_solver.hpp:88
#define BLKLDL_F77
Definition: my_feti_sparse_solver.hpp:52
const double Epetra_MinDouble
Definition: Claps_ConfigDefs.hpp:55
void metis_partgraphkway(int *n, int xadj[], int adjncy[], int vwgt[], int adjwgt[], int *wgtflag, int *numflag, int *nparts, int options[], int *edgecut, int part[])
void int int int int int & iwsize
Definition: my_feti_sparse_solver.hpp:58
void get_cdof(int cs_local[], int &csdimP, double &xcent_, double &ycent_, double &zcent_)
Definition: CRD_utils.hpp:57
void int int int int int double int int int int int double & tol
Definition: my_feti_sparse_solver.hpp:74
void int int int int * xlnz
Definition: my_feti_sparse_solver.hpp:88
const double Epetra_Overflow
Definition: Claps_ConfigDefs.hpp:57
Graph_class(int N_, int A1_[], int A2_[])
void int * xpanel
Definition: my_feti_sparse_solver.hpp:88
virtual ~solver_crd()
Definition: solver_crd.hpp:52
void A_times_x(double *x, double *Ax)
void construct_transpose(Epetra_CrsMatrix *&A, Epetra_CrsMatrix *&AT)
void int int int int double int int int int int int int int int int & nrhs
Definition: my_feti_sparse_solver.hpp:88
Definition: SCLIP_solver.hpp:59
void int int int int int int int & nofsub
Definition: my_feti_sparse_solver.hpp:58
preconditioner_crd()
Definition: preconditioner_crd.hpp:60
void int int int int double int int int int int int int int int int double int & lsoln
Definition: my_feti_sparse_solver.hpp:88
void CLOP_solver_init(int overlap, double solver_tol, int maxiter, int atype, int ndim, int local_solver, int max_orthog, int prt_debug, int prt_summary, int krylov_method, int scale_option, int num_rigid_mode)
double norm2(double a[], int n)
void genpu(const Epetra_IntVector *LD, const Epetra_MultiVector *Coords, double rhs[], double sol[], double temp[], int atype_sub, int ndim_sub, double WORK[], int LWORK, double Edof_sub[], int &nneg)
void int int int int int int int int int int int & nsuper
Definition: my_feti_sparse_solver.hpp:61
void mpcforces(Epetra_Vector *uLocal, Epetra_Import *ImporterStLam2Loc)
void apply_preconditioner(const double r[], double z[])
void solve(Epetra_Vector *uStand, const Epetra_Vector *fStand, int &num_iter, int &solver_status)
void EPmat_datfile(Epetra_CrsMatrix *A, char fname[])
#define BFINIT_F77
Definition: my_feti_sparse_solver.hpp:51
SCLIP_solver(int nnode_, int nelem_, int neq_, int nadj_proc_, int ndofs_deleted_, int NumberMpc_, const int E1_[], const int E2_[], const int adj_proc_[], const int H1_global_[], const int H2_[], const MPI_Comm *mpicomm_, const int gnn_[], const unsigned short *dofmap_on_node_, const double x_[], const double y_[], const double z_[], const int rowbeg_KU_[], const int colidx_KU_[], const double KU_[], const int mapdof2row_[], const int bc_node_ids_[], const int bc_node_dof_[], const MpcLocal *MpcVector_)
void sum_vectors(double a[], int n, double a_sum[])
int sol(int NRHS, double RHS[], double SOL[], double TEMP[])
Definition: CLIP_solver.hpp:70
void int int int int double int int int int int int double int & numUncon
Definition: my_feti_sparse_solver.hpp:94
Definition: SCLOP_solver.hpp:59
#define SFINIT_F77
Definition: my_feti_sparse_solver.hpp:49
Definition: CLOP_sub.hpp:58
CLIP_solver(const Epetra_CrsMatrix *ASub_, const Epetra_IntVector *NodalDofs_, const Epetra_MultiVector *Coords_, const Epetra_CrsMatrix *ConStandard_, const double *clip_params_)
void metis_partgraphrecursive(int *n, int xadj[], int adjncy[], int vwgt[], int adjwgt[], int *wgtflag, int *numflag, int *nparts, int options[], int *edgecut, int part[])