Data Structures | Defines | Typedefs | Functions

g2mblmlprivated.h File Reference

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

Go to the source code of this file.

Data Structures

struct  mlblock_desc
struct  mesh_ml_optdata
struct  mesh_ml_cg_data

Defines

#define _CONST   const
#define MIN_NVCP   100
#define MAX_NVCP   3500
#define MAX_NVCPS   10000
#define SUBBLOCK_STEP   4
#define SUBBLOCK_STEP_CP   5
#define MYINFINITY   1.0e+308
#define EPS1   1.0e-4
#define EPS2   1.0e-7
#define EPS3   1.0e-8
#define EPS4   1.0e-8
#define DELTA4   1.0e-7
#define BETA   0.125
#define CG_EPS   1.0e-3
#define CG_DELTA   1.0e-20
#define MAXCGN   512
#define MAXNTN   16
#define MAXBTN   20
#define MAXCTN   24
#define MAXGTN   10
#define GRTHR   0.02
#define FLAG_F   0x0001
#define FLAG_G   0x0002
#define FLAG_H   0x0004
#define FLAG_LH   0x0008
#define FLAG_CH   0x0010
#define FLAG_CMH   0x0020
#define FLAG_CMLH   0x0040
#define FLAG_ADVANCE   0x0080
#define GRDIV(a, b)   (exp((1.0-TAU)*log(a)+TAU*log(b)))

Typedefs

typedef boolean(* cg_mult )(int nvars, void *usrdata, const double *x, double *Ax)

Functions

boolean _g2mbl_MLDivideBlock (int nv, BSMvertex *mv, int *mvhei, int nhe, BSMhalfedge *mhe, int nfac, BSMfacet *mfac, int *mfhei, int nvcp, int *vncpi, int *nvbcp1, int **vnbcp1, int *seed1, int *nvbcp2, int **vnbcp2, int *seed2, int step)
boolean _g2mbl_MLAssignMeshd (mesh_ml_optdata *d, int nv, BSMvertex *mv, int *mvhei, point3d *mvcp, int nhe, BSMhalfedge *mhe, int nfac, BSMfacet *mfac, int *mfhei, byte *mkcp)
boolean _g2mbl_MLSetupBlocksd (mesh_ml_optdata *d, short nlevels, short bsize, int step)
boolean _g2mbl_MLOptAllocBFArraysd (mesh_ml_optdata *d, int nkn1, int nkn2, boolean reparam)
boolean _g2mbl_MLFindElementsd (mesh_ml_optdata *d, int bls, boolean dnkn)
boolean _g2mbl_MLFindBlockElementsd (mesh_ml_optdata *d)
boolean _g2mbl_MLFindVCPNeighboursd (mesh_ml_optdata *d, nzHbl_rowdesc **vn, int **vni)
boolean _g2mbl_MLSetupBlockCGHessiand (mesh_ml_optdata *d, int bn)
boolean _g2mbl_MLSetupBlockCholHessiand (mesh_ml_optdata *d, int bn)
boolean _g2mbl_MLSetupBlockHessiansd (mesh_ml_optdata *d)
boolean _g2mbl_MLSetupElemConstd (mesh_ml_optdata *d, double dM, double dO, double C)
double g2mbl_MLFuncd (int nkn, double *qcoeff, double **Nitabs, double **Jac, int nv, point3d *mvcp, int ndomel, int *domelind, meshdom_elem *domelem, int *domelcpind, boolean recalc, double *ftab)
boolean g2mbl_MLFuncGradd (int nkn, double *qcoeff, double **Nitabs, double **Jac, int nv, point3d *mvcp, int ndomel, int *domelind, meshdom_elem *domelem, int *domelcpind, int nvcp, int *vncpi, boolean recalc, double *ftab, double *gtab, double *func, double *grad)
boolean g2mbl_MLFuncGradHessianAd (int nkn, double *qcoeff, double **Nitabs, double **Nijtabs, double **Mijtabs, double **Jac, int nv, point3d *mvcp, int ndomel, int *domelind, meshdom_elem *domelem, int *domelcpind, int nvcp, int *vncpi, boolean recalc, double *ftab, double *gtab, double *htab, double *func, double *grad, int nHbl, nzHbl_rowdesc *iHbl, int *cHbl, int *tHbl, double *Hbl)
boolean g2mbl_MLFuncGradHessianBd (int nkn, double *qcoeff, double **Nitabs, double **Nijtabs, double **Mijtabs, double **Jac, int nv, point3d *mvcp, int ndomel, int *domelind, meshdom_elem *domelem, int *domelcpind, int nvcp, int *vncpi, boolean recalc, double *ftab, double *gtab, double *htab, double *func, double *grad, int hsize, int *hprof, double **hrows)
boolean g2mbl_MLGetHessianRowsd (int nv, int nvcp1, int *vncpi1, int nHbl, nzHbl_rowdesc *iHbl, int *cHbl, int *tHbl, double *Hbl, int nvcp, int *vncpi, int hsize, int *hprof, double **hrows)
boolean _g2mbl_MLmultAxd (int nvars, void *usrdata, _CONST double *x, double *Ax)
boolean _g2mbl_MLmultQIxd (int nvars, void *usrdata, _CONST double *x, double *Qix)
boolean _g2mbl_MLDecomposeBlockPrecond (mesh_ml_optdata *d, short int bl, double nu, boolean *positive)
boolean g2mbl_MLOptBlockAd (void *data, int bl)
boolean g2mbl_MLOptBlockBd (void *data, int bl)
boolean _g2mbl_CMPAssignMeshd (mesh_ml_optdata *d, int fnv, BSMvertex *fmv, int *fmvhei, point3d *fmvcp, int fnhe, BSMhalfedge *fmhe, int fnfac, BSMfacet *fmfac, int *fmfhei, byte *fmkcp, int cnv, int rmnnz, index2 *rmnzi, double *rmnzc)
boolean _g2mbl_CMPFindCoarseMeshBlock (int fnv, int cnv, int rmnnz, index2 *rmnzi, int nvbcp, int *vnbcp, int *nwbcp, int **wnbcp)
boolean _g2mbl_CMPFindBlockCGPmatrix (int fnv, int cnv, int rmnnz, index2 *rmnzi, int nvbcp, int *vnbcp, int nwbcp, int *wnbcp, int *smnnz, index3 **smi)
boolean _g2mbl_CMPOrderCoarsePoints (int nwcp, int nnz, index2 *nzci, int brmnnz, index3 *brmnzi, int blsize, int *hsize, int *hprof)
boolean _g2mbl_CMPSetupBlockCGPrecondd (mesh_ml_optdata *d, int bn)
boolean _g2mbl_CMPSetupBlockHessiansd (mesh_ml_optdata *d)
boolean _g2mbl_CMPMultRTHR3x3d (int nrowsa, int nnza, index3 *ai, double *ac, int ncolsb, int nnzb, index3 *bi, double *bc, int nnz1, double nu, int hsize, int *hprof, double **hrows)
boolean _g2mbl_CMPSetupCoarseHessiand (mesh_ml_optdata *d, int bl, double nu)
boolean g2mbl_MLSFuncGradd (int nkn, double *qcoeff, double **Nitabs, double **Jac, int nv, point3d *mvcp, vector3d *mvcpn, int ndomel, int *domelind, meshdom_elem *domelem, int *domelcpind, int nvcp, int *vncpi, boolean recalc, double *ftab, double *gtab, double *func, double *grad)
boolean g2mbl_MLSFuncGradHessianAd (int nkn, double *qcoeff, double **Nitabs, double **Nijtabs, double **Mijtabs, double **Jac, int nv, point3d *mvcp, vector3d *mvcpn, int ndomel, int *domelind, meshdom_elem *domelem, int *domelcpind, int nvcp, int *vncpi, boolean recalc, double *ftab, double *gtab, double *htab, double *func, double *grad, int nHbl, nzHbl_rowdesc *iHbl, int *cHbl, int *tHbl, double *Hbl)
boolean g2mbl_MLSFuncGradHessianBd (int nkn, double *qcoeff, double **Nitabs, double **Nijtabs, double **Mijtabs, double **Jac, int nv, point3d *mvcp, vector3d *mvcpn, int ndomel, int *domelind, meshdom_elem *domelem, int *domelcpind, int nvcp, int *vncpi, boolean recalc, double *ftab, double *gtab, double *htab, double *func, double *grad, int hsize, int *hprof, double **hrows)
boolean g2mbl_MLSGetHessianRowsd (int nv, int nvcp1, int *vncpi1, int nHbl, nzHbl_rowdesc *iHbl, int *cHbl, int *tHbl, double *Hbl, int nvcp, int *vncpi, int hsize, int *hprof, double **hrows)
boolean _g2mbl_MLSSetupBlockCGHessiand (mesh_ml_optdata *d, int bn)
boolean _g2mbl_MLSSetupBlockCholHessiand (mesh_ml_optdata *d, int bn)
boolean _g2mbl_MLSSetupBlockHessiansd (mesh_ml_optdata *d)
boolean _g2mbl_MLSFindCPNormalsd (mesh_ml_optdata *d)
boolean _g2mbl_CMPSSetupCoarseHessiand (mesh_ml_optdata *d, int bl, double nu)
void _g2mbl_MLInvalSmallBlocks (mesh_ml_optdata *d, int bl)
boolean _g2mbl_MLSmultAxd (int nvars, void *usrdata, double *x, double *Ax)
boolean _g2mbl_MLSmultQIxd (int nvars, void *usrdata, double *x, double *Qix)
boolean _g2mbl_MLSDecomposeBlockPrecond (mesh_ml_optdata *d, short int bl, double nu, boolean *positive)
void _g2mbl_MLSAddCPIncrement (int nvcp, int *vncpi, point3d *mvcp, vector3d *mvcpn, double *incr, point3d *omvcp)
boolean g2mbl_MLSOptBlockAd (void *data, int bl)
boolean g2mbl_MLSOptBlockBd (void *data, int bl)
boolean _g2mbl_CMPSSetupBlockCGPrecondd (mesh_ml_optdata *d, int bn)
boolean _g2mbl_CMPSSetupBlockHessiansd (mesh_ml_optdata *d)
int _g2mbl_MLNextBlockNumd (mesh_ml_optdata *d, boolean advance)

Define Documentation

#define _CONST   const
#define BETA   0.125
#define CG_DELTA   1.0e-20
#define CG_EPS   1.0e-3
#define DELTA4   1.0e-7
#define EPS1   1.0e-4
#define EPS2   1.0e-7
#define EPS3   1.0e-8
#define EPS4   1.0e-8
#define FLAG_ADVANCE   0x0080
#define FLAG_CH   0x0010
#define FLAG_CMH   0x0020
#define FLAG_CMLH   0x0040
#define FLAG_F   0x0001
#define FLAG_G   0x0002
#define FLAG_H   0x0004
#define FLAG_LH   0x0008
#define GRDIV (   a,
  b 
)    (exp((1.0-TAU)*log(a)+TAU*log(b)))
#define GRTHR   0.02
#define MAX_NVCP   3500
#define MAX_NVCPS   10000
#define MAXBTN   20
#define MAXCGN   512
#define MAXCTN   24
#define MAXGTN   10
#define MAXNTN   16
#define MIN_NVCP   100
#define MYINFINITY   1.0e+308
#define SUBBLOCK_STEP   4
#define SUBBLOCK_STEP_CP   5

Typedef Documentation

typedef boolean(* cg_mult)(int nvars, void *usrdata, const double *x, double *Ax)

Function Documentation

boolean _g2mbl_CMPAssignMeshd ( mesh_ml_optdata d,
int  fnv,
BSMvertex fmv,
int *  fmvhei,
point3d fmvcp,
int  fnhe,
BSMhalfedge fmhe,
int  fnfac,
BSMfacet fmfac,
int *  fmfhei,
byte fmkcp,
int  cnv,
int  rmnnz,
index2 rmnzi,
double *  rmnzc 
)
boolean _g2mbl_CMPFindBlockCGPmatrix ( int  fnv,
int  cnv,
int  rmnnz,
index2 rmnzi,
int  nvbcp,
int *  vnbcp,
int  nwbcp,
int *  wnbcp,
int *  smnnz,
index3 **  smi 
)
boolean _g2mbl_CMPFindCoarseMeshBlock ( int  fnv,
int  cnv,
int  rmnnz,
index2 rmnzi,
int  nvbcp,
int *  vnbcp,
int *  nwbcp,
int **  wnbcp 
)
boolean _g2mbl_CMPMultRTHR3x3d ( int  nrowsa,
int  nnza,
index3 ai,
double *  ac,
int  ncolsb,
int  nnzb,
index3 bi,
double *  bc,
int  nnz1,
double  nu,
int  hsize,
int *  hprof,
double **  hrows 
)
boolean _g2mbl_CMPOrderCoarsePoints ( int  nwcp,
int  nnz,
index2 nzci,
int  brmnnz,
index3 brmnzi,
int  blsize,
int *  hsize,
int *  hprof 
)
boolean _g2mbl_CMPSetupBlockCGPrecondd ( mesh_ml_optdata d,
int  bn 
)
boolean _g2mbl_CMPSetupBlockHessiansd ( mesh_ml_optdata d  ) 
boolean _g2mbl_CMPSetupCoarseHessiand ( mesh_ml_optdata d,
int  bl,
double  nu 
)
boolean _g2mbl_CMPSSetupBlockCGPrecondd ( mesh_ml_optdata d,
int  bn 
)
boolean _g2mbl_CMPSSetupBlockHessiansd ( mesh_ml_optdata d  ) 
boolean _g2mbl_CMPSSetupCoarseHessiand ( mesh_ml_optdata d,
int  bl,
double  nu 
)
boolean _g2mbl_MLAssignMeshd ( mesh_ml_optdata d,
int  nv,
BSMvertex mv,
int *  mvhei,
point3d mvcp,
int  nhe,
BSMhalfedge mhe,
int  nfac,
BSMfacet mfac,
int *  mfhei,
byte mkcp 
)
boolean _g2mbl_MLDecomposeBlockPrecond ( mesh_ml_optdata d,
short int  bl,
double  nu,
boolean positive 
)
boolean _g2mbl_MLDivideBlock ( int  nv,
BSMvertex mv,
int *  mvhei,
int  nhe,
BSMhalfedge mhe,
int  nfac,
BSMfacet mfac,
int *  mfhei,
int  nvcp,
int *  vncpi,
int *  nvbcp1,
int **  vnbcp1,
int *  seed1,
int *  nvbcp2,
int **  vnbcp2,
int *  seed2,
int  step 
)
boolean _g2mbl_MLFindBlockElementsd ( mesh_ml_optdata d  ) 
boolean _g2mbl_MLFindElementsd ( mesh_ml_optdata d,
int  bls,
boolean  dnkn 
)
boolean _g2mbl_MLFindVCPNeighboursd ( mesh_ml_optdata d,
nzHbl_rowdesc **  vn,
int **  vni 
)
void _g2mbl_MLInvalSmallBlocks ( mesh_ml_optdata d,
int  bl 
)
boolean _g2mbl_MLmultAxd ( int  nvars,
void *  usrdata,
_CONST double *  x,
double *  Ax 
)
boolean _g2mbl_MLmultQIxd ( int  nvars,
void *  usrdata,
_CONST double *  x,
double *  Qix 
)
int _g2mbl_MLNextBlockNumd ( mesh_ml_optdata d,
boolean  advance 
)
boolean _g2mbl_MLOptAllocBFArraysd ( mesh_ml_optdata d,
int  nkn1,
int  nkn2,
boolean  reparam 
)
void _g2mbl_MLSAddCPIncrement ( int  nvcp,
int *  vncpi,
point3d mvcp,
vector3d mvcpn,
double *  incr,
point3d omvcp 
)
boolean _g2mbl_MLSDecomposeBlockPrecond ( mesh_ml_optdata d,
short int  bl,
double  nu,
boolean positive 
)
boolean _g2mbl_MLSetupBlockCGHessiand ( mesh_ml_optdata d,
int  bn 
)
boolean _g2mbl_MLSetupBlockCholHessiand ( mesh_ml_optdata d,
int  bn 
)
boolean _g2mbl_MLSetupBlockHessiansd ( mesh_ml_optdata d  ) 
boolean _g2mbl_MLSetupBlocksd ( mesh_ml_optdata d,
short  nlevels,
short  bsize,
int  step 
)
boolean _g2mbl_MLSetupElemConstd ( mesh_ml_optdata d,
double  dM,
double  dO,
double  C 
)
boolean _g2mbl_MLSFindCPNormalsd ( mesh_ml_optdata d  ) 
boolean _g2mbl_MLSmultAxd ( int  nvars,
void *  usrdata,
double *  x,
double *  Ax 
)
boolean _g2mbl_MLSmultQIxd ( int  nvars,
void *  usrdata,
double *  x,
double *  Qix 
)
boolean _g2mbl_MLSSetupBlockCGHessiand ( mesh_ml_optdata d,
int  bn 
)
boolean _g2mbl_MLSSetupBlockCholHessiand ( mesh_ml_optdata d,
int  bn 
)
boolean _g2mbl_MLSSetupBlockHessiansd ( mesh_ml_optdata d  ) 
double g2mbl_MLFuncd ( int  nkn,
double *  qcoeff,
double **  Nitabs,
double **  Jac,
int  nv,
point3d mvcp,
int  ndomel,
int *  domelind,
meshdom_elem domelem,
int *  domelcpind,
boolean  recalc,
double *  ftab 
)
boolean g2mbl_MLFuncGradd ( int  nkn,
double *  qcoeff,
double **  Nitabs,
double **  Jac,
int  nv,
point3d mvcp,
int  ndomel,
int *  domelind,
meshdom_elem domelem,
int *  domelcpind,
int  nvcp,
int *  vncpi,
boolean  recalc,
double *  ftab,
double *  gtab,
double *  func,
double *  grad 
)
boolean g2mbl_MLFuncGradHessianAd ( int  nkn,
double *  qcoeff,
double **  Nitabs,
double **  Nijtabs,
double **  Mijtabs,
double **  Jac,
int  nv,
point3d mvcp,
int  ndomel,
int *  domelind,
meshdom_elem domelem,
int *  domelcpind,
int  nvcp,
int *  vncpi,
boolean  recalc,
double *  ftab,
double *  gtab,
double *  htab,
double *  func,
double *  grad,
int  nHbl,
nzHbl_rowdesc iHbl,
int *  cHbl,
int *  tHbl,
double *  Hbl 
)
boolean g2mbl_MLFuncGradHessianBd ( int  nkn,
double *  qcoeff,
double **  Nitabs,
double **  Nijtabs,
double **  Mijtabs,
double **  Jac,
int  nv,
point3d mvcp,
int  ndomel,
int *  domelind,
meshdom_elem domelem,
int *  domelcpind,
int  nvcp,
int *  vncpi,
boolean  recalc,
double *  ftab,
double *  gtab,
double *  htab,
double *  func,
double *  grad,
int  hsize,
int *  hprof,
double **  hrows 
)
boolean g2mbl_MLGetHessianRowsd ( int  nv,
int  nvcp1,
int *  vncpi1,
int  nHbl,
nzHbl_rowdesc iHbl,
int *  cHbl,
int *  tHbl,
double *  Hbl,
int  nvcp,
int *  vncpi,
int  hsize,
int *  hprof,
double **  hrows 
)
boolean g2mbl_MLOptBlockAd ( void *  data,
int  bl 
)
boolean g2mbl_MLOptBlockBd ( void *  data,
int  bl 
)
boolean g2mbl_MLSFuncGradd ( int  nkn,
double *  qcoeff,
double **  Nitabs,
double **  Jac,
int  nv,
point3d mvcp,
vector3d mvcpn,
int  ndomel,
int *  domelind,
meshdom_elem domelem,
int *  domelcpind,
int  nvcp,
int *  vncpi,
boolean  recalc,
double *  ftab,
double *  gtab,
double *  func,
double *  grad 
)
boolean g2mbl_MLSFuncGradHessianAd ( int  nkn,
double *  qcoeff,
double **  Nitabs,
double **  Nijtabs,
double **  Mijtabs,
double **  Jac,
int  nv,
point3d mvcp,
vector3d mvcpn,
int  ndomel,
int *  domelind,
meshdom_elem domelem,
int *  domelcpind,
int  nvcp,
int *  vncpi,
boolean  recalc,
double *  ftab,
double *  gtab,
double *  htab,
double *  func,
double *  grad,
int  nHbl,
nzHbl_rowdesc iHbl,
int *  cHbl,
int *  tHbl,
double *  Hbl 
)
boolean g2mbl_MLSFuncGradHessianBd ( int  nkn,
double *  qcoeff,
double **  Nitabs,
double **  Nijtabs,
double **  Mijtabs,
double **  Jac,
int  nv,
point3d mvcp,
vector3d mvcpn,
int  ndomel,
int *  domelind,
meshdom_elem domelem,
int *  domelcpind,
int  nvcp,
int *  vncpi,
boolean  recalc,
double *  ftab,
double *  gtab,
double *  htab,
double *  func,
double *  grad,
int  hsize,
int *  hprof,
double **  hrows 
)
boolean g2mbl_MLSGetHessianRowsd ( int  nv,
int  nvcp1,
int *  vncpi1,
int  nHbl,
nzHbl_rowdesc iHbl,
int *  cHbl,
int *  tHbl,
double *  Hbl,
int  nvcp,
int *  vncpi,
int  hsize,
int *  hprof,
double **  hrows 
)
boolean g2mbl_MLSOptBlockAd ( void *  data,
int  bl 
)
boolean g2mbl_MLSOptBlockBd ( void *  data,
int  bl 
)