Classes | Typedefs | Functions

ma Namespace Reference

All MeshAdapt symbols. More...

Classes

class  Input
 User configuration for a MeshAdapt run. More...
class  SolutionTransfer
 user-defined solution transfer base More...
class  SolutionTransfers
 a meta-object that carries out a series of transfers More...
class  AutoSolutionTransfer
 MeshAdapt's automatic solution transfer system. More...
class  AnisotropicFunction
 User-defined Anisotropic size function. More...
class  IsotropicFunction
 User-defined Isotropic size function. More...

Typedefs

typedef apf::Vector3 Vector
 convenient vector name
typedef apf::Matrix3x3 Matrix
 convenient matrix name
typedef apf::Mesh2 Mesh
 convenient mesh name
typedef apf::MeshEntity Entity
 convenient mesh entity name
typedef apf::MeshIterator Iterator
 convenient mesh iterator name
typedef apf::MeshTag Tag
 convenient mesh tag name
typedef apf::DynamicArray
< Entity * > 
EntityArray
 convenient mesh entity array name
typedef std::set< Entity * > EntitySet
 convenient mesh entity set name
typedef EntityArray Upward
 convenient mesh entity upward adjacencies name
typedef apf::Downward Downward
 convenient mesh entity downward adjacencies name
typedef apf::ModelEntity Model
 convenient geometric model entity name
typedef apf::Copies Remotes
 convenient remote copies name
typedef apf::Parts Parts
 part id set name

Functions

void adapt (Mesh *m, IsotropicFunction *f, SolutionTransfer *s=0)
 adapt based on an isotropic function
void adapt (Mesh *m, AnisotropicFunction *f, SolutionTransfer *s=0)
 adapt based on an anisotropic function
void adapt (Input *in)
 adapt with custom configuration
void adaptVerbose (Input *in, bool verbosef=false)
 adapt verbose for debugging
void runUniformRefinement (Mesh *m, int n=1, SolutionTransfer *s=0)
 run uniform refinement, plus snapping and shape correction
void adaptMatching (Mesh *m, int n=1, SolutionTransfer *s=0)
 run uniform refinement with matched entity support
void localizeLayerStacks (Mesh *m)
 localize boundary layer stacks
Inputconfigure (Mesh *m, AnisotropicFunction *f, SolutionTransfer *s=0)
 generate a configuration based on an anisotropic function.
Inputconfigure (Mesh *m, IsotropicFunction *f, SolutionTransfer *s=0)
 generate a configuration based on an isotropic function
Inputconfigure (Mesh *m, apf::Field *sizes, apf::Field *frames, SolutionTransfer *s=0)
 generate a configuration based on anisotropic fields
Inputconfigure (Mesh *m, apf::Field *size, SolutionTransfer *s=0)
 generate a configuration based on an isotropic field
InputconfigureUniformRefine (Mesh *m, int n=1, SolutionTransfer *s=0)
 generate a uniform refinement configuration
InputconfigureMatching (Mesh *m, int n=1, SolutionTransfer *s=0)
 generate a matched uniform refinement configuration
InputconfigureIdentity (Mesh *m, SizeField *f=0, SolutionTransfer *s=0)
 generate a no-op configuration
void validateInput (Input *in)
 used internally, but users can call this if they want
Vector getPosition (Mesh *m, Entity *vertex)
 get vertex spatial coordinates
EntityrebuildElement (Mesh *m, Entity *original, Entity *oldVert, Entity *newVert, apf::BuildCallback *cb, RebuildCallback *rcb=0)
 rebuild an element with one vertex being different
double getInsphere (Mesh *m, Entity *e)
 Computes the insphere radius of an element.
SolutionTransfercreateFieldTransfer (apf::Field *f)
 Creates a default solution transfer object for a field.

Detailed Description

All MeshAdapt symbols.


Function Documentation

void ma::adapt ( Mesh *  m,
IsotropicFunction *  f,
SolutionTransfer *  s = 0 
)

adapt based on an isotropic function

see maSize.h for how to define a function

void ma::adapt ( Input *  in  ) 

adapt with custom configuration

see maInput.h for details. note that this function will delete the Input object.

void ma::adaptMatching ( Mesh *  m,
int  n = 1,
SolutionTransfer *  s = 0 
)

run uniform refinement with matched entity support

currently this supports snapping but not shape correction

void ma::adaptVerbose ( Input *  in,
bool  verbosef = false 
)

adapt verbose for debugging

see maInput.h for details. The mesh will be written (vtk-format) at each operation stage

Input* ma::configure ( Mesh *  m,
AnisotropicFunction *  f,
SolutionTransfer *  s = 0 
)

generate a configuration based on an anisotropic function.

Parameters:
s if non-zero, use that to transfer all fields. otherwise, transfer any associated fields with default algorithms
Input* ma::configure ( Mesh *  m,
IsotropicFunction *  f,
SolutionTransfer *  s = 0 
)

generate a configuration based on an isotropic function

Parameters:
s if non-zero, use that to transfer all fields. otherwise, transfer any associated fields with default algorithms
Input* ma::configure ( Mesh *  m,
apf::Field *  sizes,
apf::Field *  frames,
SolutionTransfer *  s = 0 
)

generate a configuration based on anisotropic fields

Parameters:
sizes a vector field of desired element sizes along the axes of the anisotropic frame
frames a matrix field containing anisotropic frames for each vertex
s if non-zero, use that to transfer all fields. otherwise, transfer any associated fields with default algorithms
Input* ma::configure ( Mesh *  m,
apf::Field *  size,
SolutionTransfer *  s = 0 
)

generate a configuration based on an isotropic field

Parameters:
size a scalar field of desired element size
s if non-zero, use that to transfer all fields. otherwise, transfer any associated fields with default algorithms
SolutionTransfer* ma::createFieldTransfer ( apf::Field *  f  ) 

Creates a default solution transfer object for a field.

MeshAdapt has good algorithms for transferring nodal fields as well as using the Voronoi system for transferring integration point fields.

double ma::getInsphere ( Mesh *  m,
Entity *  e 
)

Computes the insphere radius of an element.

Todo:
currently only implemented for tets
void ma::localizeLayerStacks ( Mesh *  m  ) 

localize boundary layer stacks

this will fail if parts are emptied

Entity* ma::rebuildElement ( Mesh *  m,
Entity *  original,
Entity *  oldVert,
Entity *  newVert,
apf::BuildCallback cb,
RebuildCallback *  rcb = 0 
)

rebuild an element with one vertex being different

uses the original to reconstruct geometric classification

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines