#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().
1.6.2