am.h File Reference

Class AM: a multilevel finite element algebra object. More...

#include <mc/mc_base.h>
#include <mc/aprx.h>

Include dependency graph for am.h:

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

Go to the source code of this file.

Classes

struct  sAM
 Class AM: Definition. More...

Typedefs

typedef struct sAM AM
 Declaraction of the AM class as the AM structure.

Functions

AMAM_ctor (Vmem *vmem, Aprx *taprx)
 The AM constructor.
void AM_dtor (AM **thee)
 The AM destructor.
void AM_create (AM *thee)
 Create the following internal Alg structures:
A ==> The tangent matrix (linearization operator)
M ==> The mass matrix
W[] ==> The node vectors.
void AM_destroy (AM *thee)
 Destroy the following internal Alg structures:
A ==> The tangent matrix (linearization operator)
M ==> The mass matrix
W[] ==> The node vectors.
int AM_markRefine (AM *thee, int key, int color, int bkey, double elevel)
 Mark a given mesh for refinement.
int AM_refine (AM *thee, int rkey, int bkey, int pkey)
 Refine the mesh.
int AM_unRefine (AM *thee, int rkey, int pkey)
 Un-refine the mesh.
int AM_deform (AM *thee)
 Deform the mesh.
int AM_read (AM *thee, int key, Vio *sock)
 Read in the user-specified initial mesh given in the "MCSF" or "MCEF" format, and transform into our internal datastructures.
Do a little more than a "Aprx_read", in that we also initialize the extrinsic and intrinsic spatial dimensions corresponding to the input mesh, and we also then build the reference elements.
double AM_assem (AM *thee, int evalKey, int energyKey, int residKey, int tangKey, int massKey, int bumpKey, Bvec *u, Bvec *ud, Bvec *f, int ip[], double rp[])
 Assemble the linearized problem at a given level.
double AM_evalJ (AM *thee)
 Assemble the energy functional at the current solution.
void AM_evalFunc (AM *thee, int number, int block, int numPts, double *pts, double *vals, int *marks)
 Evaluate a finite element function.
void AM_bndIntegral (AM *thee)
 Perform a boundary integral.
double AM_evalError (AM *thee, int pcolor, int key)
 Evaluate error in the current solution.
void AM_applyDiriZero (AM *thee, Bvec *which)
 Apply zero dirichlet condition at a given level.
void AM_iniGuess (AM *thee, Bvec *which)
 Setup an initial guess at a given level.
int AM_part (AM *thee, int pkey, int pwht, int ppow)
 Partition the mesh using the matching Alg level.
int AM_partSet (AM *thee, int pcolor)
 Set the partition color.
int AM_partSmooth (AM *thee)
 Do a partition smoothing.
void AM_printJ (AM *thee)
 Print the energy.
void AM_printA (AM *thee)
 Print the system matrix.
void AM_printAnoD (AM *thee)
 Print the system matrix with Dirichlet rows/cols zeroed.
void AM_printAsp (AM *thee, char *fname)
 Print the system matrix in MATLAB sparse format.
void AM_printAspNoD (AM *thee, char *fname)
 Print the system matrix in MATLAB sparse format with Dirichlet rows/cols zeroed.
void AM_printP (AM *thee)
 Print the prolongation matrix.
void AM_printPsp (AM *thee, char *fname)
 Print the prolongation matrix in MATLAB sparse format.
void AM_printV (AM *thee, int num)
 Print a specified vector.
void AM_printVsp (AM *thee, int num, char *fname)
 Print a vector in MATLAB sparse format.
void AM_writeGEOM (AM *thee, Vio *sock, int defKey, int colKey, int chartKey, double gluVal, int fkey, int number, char *format)
 Write out a mesh in some format.
void AM_writeSOL (AM *thee, Vio *sock, int number, char *format)
 Write out a solution in some format.
void AM_memChk (AM *thee)
 Print the exact current malloc usage.
void AM_lSolve (AM *thee, int prob, int meth, int itmax, double etol, int prec, int gues, int pjac)
 Linear solver.
void AM_hlSolve (AM *thee, int prob, int meth, int itmax, double etol, int prec, int gues, int pjac)
 Hierarchical linear solver.
void AM_nSolve (AM *thee, int meth, int itmax, double etol, int lmeth, int litmax, double letol, int lprec, int gues, int pjac)
void AM_newton (AM *thee, int itmax, double etol, int lmeth, int litmax, double letol, int lprec, int pjac, double loadParm)
 Damped-Inexact Newton iteration.
VPUBLIC void AM_homotopy (AM *thee, int itmax, double etol, int lmeth, int litmax, double letol, int lprec, int pjac)
 Homotopy and the related "incremental loading" iterations.


Detailed Description

Class AM: a multilevel finite element algebra object.

Author:
Michael Holst
Note:
None
Version:
Id
am.h,v 1.56 2010/07/13 13:37:05 fetk Exp

Attention:
 *
 * MC = < Manifold Code >
 * Copyright (C) 1994--2008 Michael Holst
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 *  

Generated on Mon Aug 9 11:13:37 2010 for MC by  doxygen 1.5.6