Classes | |
| class | MOERTEL::Function |
| A virtual class to form a shape function of some type More... | |
| class | MOERTEL::Function_Constant1D |
| A 1D constant shape function for a 2-noded 1D Segment More... | |
| class | MOERTEL::Function_Linear1D |
| A 1D linear shape function More... | |
| class | MOERTEL::Function_DualLinear1D |
| A 1D dual linear shape function More... | |
| class | MOERTEL::Function_LinearTri |
| A 2D linear shape function for a 3-noded triangle More... | |
| class | MOERTEL::Function_DualLinearTri |
| A 2D dual linear shape function for a 3-noded triangle More... | |
| class | MOERTEL::Function_ConstantTri |
| A 2D constant shape function for a 3-noded triangle More... | |
| class | MOERTEL::Function_BiLinearQuad |
| class | MOERTEL::Function_DualBiLinearQuad |
| class | MOERTEL::Integrator |
| A class to perform Gaussian integration and assembly of mass matrices on the overlap of 2 segments in 1D and 2D More... | |
| class | MOERTEL::Interface |
| A class to construct a single interface More... | |
| class | MOERTEL::Manager |
| Top level user interface to mortar package 'Moertel' More... | |
| class | MOERTEL::Mortar_ML_Preconditioner |
| class | MOERTEL::Node |
| A class to construct a single node More... | |
| class | MOERTEL::Overlap |
| A class to compute the overlap polygon of 2 different 2D segments and construct a triangle discretization of the convex hull of that polygon More... | |
| class | MOERTEL::ProjectedNode |
| A class to handle the projection of a node onto some segment More... | |
| class | MOERTEL::Point |
| A light weight version of a node More... | |
| class | MOERTEL::Projector |
| A class to perform projections of nodes onto opposing segments in 2D and 3D More... | |
| class | MOERTEL::Segment |
| A virtual class as a basis for different types of interface segments More... | |
| class | MOERTEL::Segment_BiLinearQuad |
| A class to define a 4-noded quadrilateral 2D Segment More... | |
| class | MOERTEL::Segment_BiLinearTri |
| A class to define a 3-noded triangle 2D Segment More... | |
| class | MOERTEL::Segment_Linear1D |
| A class to define a 2-noded linear 1D Segment More... | |
| class | MOERTEL::Solver |
| The solver interface to Amesos, ML and Aztec More... | |
Functions | |
| MOERTEL::Function * | AllocateFunction (MOERTEL::Function::FunctionType type, int out) |
| Allocate a function of the correct type. | |
| MOERTEL::Segment * | AllocateSegment (int type, int out) |
| Allocate a Segment of the correct type. | |
| bool | cross (double *out, const double *g1, const double *g2) |
| Cross product. | |
| double | dot (const double *g1, const double *g2, const int dim) |
| Dot product. | |
| double | length (const double *g, const int dim) |
| Length of a vector. | |
| bool | solve22 (const double A[][2], double *x, const double *b) |
| Solve dense 2x2 system of equations. | |
| bool | solve33 (const double A[][3], double *x, const double *b) |
| Solve dense 3x3 system of equations. | |
| int | digit_ten (int i) |
| Return the '10' digit from an integer number. | |
| void | sort (double *dlist, int N, int *list2) |
| Sort dlist of length N in ascending, sort list2 according to dlist. | |
| template<typename kind> | |
| void | swap (kind &a, kind &b) |
| Template to swap 2 <kind> instances. | |
| int | MatrixMatrixAdd (const Epetra_CrsMatrix &A, bool transposeA, double scalarA, Epetra_CrsMatrix &B, double scalarB) |
| Add matrices A+B. | |
| Epetra_CrsMatrix * | MatMatMult (const Epetra_CrsMatrix &A, bool transA, const Epetra_CrsMatrix &B, bool transB, int outlevel) |
| Multiply matrices A*B. | |
| Epetra_CrsMatrix * | PaddedMatrix (const Epetra_Map rowmap, double val, const int numentriesperrow) |
| Allocate and return a matrix padded with val on the diagonal. FillComplete() is NOT called on exit. | |
| Epetra_CrsMatrix * | StripZeros (Epetra_CrsMatrix &A, double eps) |
| Strip out values from a matrix below a certain tolerance. | |
| bool | SplitMatrix2x2 (RefCountPtr< Epetra_CrsMatrix > A, RefCountPtr< Epetra_Map > &A11rowmap, RefCountPtr< Epetra_Map > &A22rowmap, RefCountPtr< Epetra_CrsMatrix > &A11, RefCountPtr< Epetra_CrsMatrix > &A12, RefCountPtr< Epetra_CrsMatrix > &A21, RefCountPtr< Epetra_CrsMatrix > &A22) |
| split a matrix into a 2x2 block system where the rowmap of one of the blocks is given | |
| Epetra_Map * | SplitMap (const Epetra_Map &Amap, const Epetra_Map &Agiven) |
| split a rowmap of matrix A | |
| bool | SplitVector (const Epetra_Vector &x, const Epetra_Map &x1map, Epetra_Vector *&x1, const Epetra_Map &x2map, Epetra_Vector *&x2) |
| split a vector into 2 non-overlapping pieces | |
| bool | MergeVector (const Epetra_Vector &x1, const Epetra_Vector &x2, Epetra_Vector &xresult) |
| merge results from 2 vectors into one (assumes matching submaps) | |
| bool | Print_Matrix (string name, Epetra_CrsMatrix &A, int ibase) |
| Print matrix to file. | |
| bool | Print_Graph (string name, Epetra_CrsGraph &A, int ibase) |
| Print graph to file. | |
| bool | Print_Vector (string name, Epetra_Vector &v, int ibase) |
| Print vector to file. | |
The Moertel package depends on Epetra, EpetraExt, Teuchos, Amesos, ML and AztecOO:
Use at least the following lines in the configure of Trilinos:
--enable-moertel --enable-epetra --enable-epetraext --enable-teuchos --enable-ml --enable-aztecoo --enable-aztecoo-teuchos --enable-amesos
|
||||||||||||
|
Allocate a function of the correct type. For communication reasons, every single derived function class needs to have a unique typ-id. This type Id can be communicated easily. So when introducing a new derived Function class, one needs to add it's type to the enum FunctionType in the virtual base class in mrtr_function.H and one needs to add a case to this method MOERTEL::AllocateFunction in mrtr_utils.cpp
|
|
||||||||||||
|
Allocate a Segment of the correct type. For communication reasons, every single derived segment class needs to have a unique typ-id. This type Id can be communicated easily. So when introducing a new segment class, one needs to add it's type to the enum SegmentType in the virtual base class in mrtr_segment.H and one needs to add a case to this method MOERTEL::AllocateSegment in mrtr_utils.cpp
|
|
||||||||||||||||
|
Cross product. Perform cross product out = g1 x g2 for vectors of dimension 3 |
|
||||||||||||||||
|
Dot product. Perform dot product g1 dot g2 for vectors of dimension dim and return result |
|
||||||||||||
|
Length of a vector. Return L2 norm of a vector of dimension dim |
|
||||||||||||||||||||||||
|
Multiply matrices A*B. matrices A and B are mutliplied and the result is allocated and returned. The method makes uses EpetraExt for multiplication The user is responsible for freeing the returned result.
|
|
||||||||||||||||||||||||
|
Add matrices A+B. Perform B = scalarB * B + scalarA * A ^ transposeA If scalarB is 0.0, then B = scalarA * A ^ transposeA isperformed. This is a modified version of EpetraExt's MatrixMatrixAdd. FillComplete() must not be called on B upon entry, FillComplete() will not be called on B upon exit by this method.
|
|
||||||||||||||||
|
Print graph to file. Prints an Epetra_CrsGraph to file in serial and parallel. Will create several files with process id appended to the name in parallel. Index base can either be 0 or 1. The first row of the file gives the global size of the range and domain map, the second row gives the local size of the row- and column map.
|
|
||||||||||||||||
|
Print matrix to file. Prints an Epetra_CrsMatrix to file in serial and parallel. Will create several files with process id appended to the name in parallel. Index base can either be 0 or 1. The first row of the file gives the global size of the range and domain map, the sond row gives the local size of the row- and column map.
|
|
||||||||||||||||
|
Print vector to file. Prints an Epetra_Vector to file in serial and parallel. Will create several files with process id appended to the name in parallel. Index base can either be 0 or 1.
|
|
||||||||||||||||
|
Solve dense 2x2 system of equations. Ax=b |
|
||||||||||||||||
|
Solve dense 3x3 system of equations. Ax=b |
|
||||||||||||||||
|
Sort dlist of length N in ascending, sort list2 according to dlist. This piece of code was lend from the Trilinos package ML |
|
||||||||||||
|
split a rowmap of matrix A splits A->RowMap() into 2 maps and returns them, where one of the rowmaps has to be given on input
|
|
||||||||||||||||||||||||||||||||
|
split a matrix into a 2x2 block system where the rowmap of one of the blocks is given Splits a given matrix into a 2x2 block system where the rowmap of one of the blocks is given on input. Blocks A11 and A22 are assumed to be square. All values on entry have to be Teuchos::null except the given rowmap and matrix A. Note that either A11rowmap or A22rowmap or both have to be nonzero. In case both rowmaps are supplied they have to be an exact and nonoverlapping split of A->RowMap(). Matrix blocks are FillComplete() on exit.
|
|
||||||||||||
|
Strip out values from a matrix below a certain tolerance. Allocates and returns a new matrix and copies A to it where entries with an absoute value smaller then eps are negelected. The method calls FillComplete(A.OperatorDomainMap(),A.OperatorRangeMap()) on the result.
|
|
||||||||||||||||
|
Template to swap 2 <kind> instances. <kind> has to implement the assignment operator = |
1.3.9.1