SCOREC core
Parallel unstructured mesh tools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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 More...
 
void adapt (Mesh *m, AnisotropicFunction *f, SolutionTransfer *s=0)
 adapt based on an anisotropic function
 
void adapt (Input *in)
 adapt with custom configuration More...
 
void adaptVerbose (Input *in, bool verbosef=false)
 adapt verbose for debugging More...
 
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 More...
 
void localizeLayerStacks (Mesh *m)
 localize boundary layer stacks More...
 
Inputconfigure (Mesh *m, AnisotropicFunction *f, SolutionTransfer *s=0, bool logInterpolation=true)
 generate a configuration based on an anisotropic function. More...
 
Inputconfigure (Mesh *m, IsotropicFunction *f, SolutionTransfer *s=0)
 generate a configuration based on an isotropic function More...
 
Inputconfigure (Mesh *m, apf::Field *sizes, apf::Field *frames, SolutionTransfer *s=0, bool logInterpolation=true)
 generate a configuration based on anisotropic fields More...
 
Inputconfigure (Mesh *m, apf::Field *size, SolutionTransfer *s=0)
 generate a configuration based on an isotropic field More...
 
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 More...
 
double getInsphere (Mesh *m, Entity *e)
 Computes the insphere radius of an element. More...
 
SolutionTransfercreateFieldTransfer (apf::Field *f)
 Creates a default solution transfer object for a field. More...
 

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,
bool  logInterpolation = true 
)

generate a configuration based on an anisotropic function.

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

generate a configuration based on an isotropic function

Parameters
sif 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,
bool  logInterpolation = true 
)

generate a configuration based on anisotropic fields

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

generate a configuration based on an isotropic field

Parameters
sizea scalar field of desired element size
sif 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