#include <parcongrad.h>
Public Member Functions | |
void | buff_coarse (double *cv, double *buff, long nd) |
void | buff_local (double *lv, double *buff) |
void | coarse_buff (double *cv, double *buff, long nd) |
void | coarse_problem_ordering (long *domproc, gtopology *top, partop *ptop, FILE *out) |
void | initiate (partop *ptop, gtopology *top, FILE *out) |
void | local_buff (double *lv, double *buff) |
double | mod_scal_prod (double *u, double *v) |
parcongrad (int np, int mr, long nd, long mes) | |
void | solve_system (partop *ptop, gtopology *top, gmatrix *gm, long *domproc, double *lhs, double *rhs, FILE *out, long iv) |
void | subdomain_ordering (partop *ptop, gtopology *top, FILE *out) |
~parcongrad () | |
Public Attributes | |
long ** | bcn |
double | err |
long * | lbdof |
list of boundary DOFs | |
long * | lidof |
list of internal DOFs | |
long | maxnbdof |
maximum number of boundary DOFs on one subdomain | |
long | maxndof |
long | mespr |
message printing | |
int | myrank |
rank of processor | |
long | nbdof |
number of boundary degrees of freedom on subdomain | |
long * | nbdofdom |
array containing numbers of boundary DOFs on subdomains | |
long | nbn |
number of boundary nodes on subdomain | |
long | ndof |
number of degrees of freedom on subdomain | |
long | ndofcp |
DATA DEFINED ONLY ON MASTER. | |
long * | ndofdom |
long | ndom |
number of subdomain | |
long | ni |
long | nidof |
number of internal degrees of freedom on subdomain | |
int | nproc |
number of processors | |
long | tndof |
Definition at line 14 of file parcongrad.h.
parcongrad | ( | int | np, | |
int | mr, | |||
long | nd, | |||
long | mes | |||
) |
~parcongrad | ( | ) |
Definition at line 21 of file parcongrad.cpp.
void buff_coarse | ( | double * | cv, | |
double * | buff, | |||
long | nd | |||
) |
function scaters boundary DOFs from buffer to coarse vector
lv | - local vector | |
buff | - buffer | |
nd | - number of subdomain |
JK, 4.1.2006
Definition at line 52 of file parcongrad.cpp.
Referenced by solve_system().
void buff_local | ( | double * | lv, | |
double * | buff | |||
) |
void coarse_buff | ( | double * | cv, | |
double * | buff, | |||
long | nd | |||
) |
function scaters boundary DOFs from buffer to coarse vector
lv | - local vector | |
buff | - buffer | |
nd | - number of subdomain |
JK, 4.1.2006
Definition at line 72 of file parcongrad.cpp.
Referenced by solve_system().
Definition at line 27 of file parcongrad.cpp.
References bcn, gtopology::codenum_generation(), partop::gcnd, partop::maxndof, maxndof, ndof, ndofdom, partop::nud, partop::tndof, and tndof.
void local_buff | ( | double * | lv, | |
double * | buff | |||
) |
double mod_scal_prod | ( | double * | u, | |
double * | v | |||
) |
void solve_system | ( | partop * | ptop, | |
gtopology * | top, | |||
gmatrix * | gm, | |||
long * | domproc, | |||
double * | lhs, | |||
double * | rhs, | |||
FILE * | out, | |||
long | iv | |||
) |
function solves system of algebraic equations by parallel conjugate gradient method
top | - topology | |
gm | - matrix of the system | |
domproc | - domain-processor correspondence | |
lhs | - array containing solution of the system | |
rhs | - array containing right hand side | |
out | - output stream | |
iv | - initial values indicator |
iv=0 - initial vector is zero vector iv=1 - initial vector is taken from x array
JK, 4.1.2006
Definition at line 101 of file parcongrad.cpp.
References buff_coarse(), coarse_buff(), copyv(), err, gmatrix::gmxv(), maxndof, mespr, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_Barrier(), MPI_COMM_WORLD, MPI_DOUBLE, MPI_LONG, MPI_Recv(), MPI_Send(), MPI_Status::MPI_TAG, myrank, ndof, ni, nproc, nullv(), p, ss(), stat, subv(), and tndof.
long** bcn |
Definition at line 66 of file parcongrad.h.
Referenced by buff_coarse(), coarse_buff(), and initiate().
double err |
Definition at line 73 of file parcongrad.h.
Referenced by solve_system().
long* lbdof |
list of boundary DOFs
Definition at line 53 of file parcongrad.h.
long* lidof |
list of internal DOFs
Definition at line 55 of file parcongrad.h.
long maxnbdof |
maximum number of boundary DOFs on one subdomain
Definition at line 50 of file parcongrad.h.
Referenced by parcongrad().
long maxndof |
Definition at line 69 of file parcongrad.h.
Referenced by initiate(), and solve_system().
long mespr |
message printing
Definition at line 32 of file parcongrad.h.
Referenced by parcongrad(), and solve_system().
int myrank |
rank of processor
Definition at line 37 of file parcongrad.h.
Referenced by parcongrad(), and solve_system().
long nbdof |
number of boundary degrees of freedom on subdomain
Definition at line 46 of file parcongrad.h.
Referenced by parcongrad().
long* nbdofdom |
array containing numbers of boundary DOFs on subdomains
Definition at line 64 of file parcongrad.h.
long nbn |
number of boundary nodes on subdomain
Definition at line 48 of file parcongrad.h.
Referenced by parcongrad().
long ndof |
number of degrees of freedom on subdomain
Definition at line 42 of file parcongrad.h.
Referenced by initiate(), parcongrad(), and solve_system().
long ndofcp |
DATA DEFINED ONLY ON MASTER.
number of global DOFs = total number of boundary DOFs number of DOFs of coarse problem
Definition at line 61 of file parcongrad.h.
long* ndofdom |
Definition at line 71 of file parcongrad.h.
Referenced by buff_coarse(), coarse_buff(), and initiate().
long ndom |
long ni |
Definition at line 72 of file parcongrad.h.
Referenced by solve_system().
long nidof |
number of internal degrees of freedom on subdomain
Definition at line 44 of file parcongrad.h.
int nproc |
number of processors
Definition at line 35 of file parcongrad.h.
Referenced by parcongrad(), and solve_system().
long tndof |
Definition at line 70 of file parcongrad.h.
Referenced by initiate(), and solve_system().