Adaptive meshing is the key to get optimal solution accuracy from your available memory and CPU resources.
With this tool you get fingertip control on dynamic mesh refinement and you can easily tailor it to your needs.
For most PDE problems the accuracy of the solution depends heavily on the memory of your machine and the time you can afford to wait. Adaptive meshing will balance your computations to give more accuracy for less time and memory. And indeed, this means higher quality of decisions relying on your programs.
Typically, the exact solution displays singularities or other effects. Such critical regions should be subject to local mesh refinement while other areas will do with a coarse mesh. For time-dependent problems the mesh should be dynamic and it should change according to updated refinement criteria, e.g. based on error estimates, gradients or other measures.
The effect of adaptive meshing can be substantial. For some problems it would even be infeasible to reach a meaningful solution without.
By combining the flexible finite element methods in the Diffpack Kernel with the power of the Adaptivity Toolbox, you get fingertip control on up-to-date adaptive meshing techniques to boost the accuracy and quality of your simulations.
By adding a few extra statements to an existing FEM-based Diffpack simulator, you get immediate access to flexible mesh refinement strategies for structured and unstructured meshes in 1, 2 and 3 space dimensions.
The refinement strategy is basically divided in three main steps:
A gallery of ready-made weight assignment functions is available based on e.g. element geometry, field values, gradients or error estimators. You can easily define your own weight assignment functions to exploit any specific structural property of your problem.
For element marking you can use absolute or relative weight comparisons towards your selection of threshold values.
You can guide the mesh refinement by controlling error tolerances and number of refinement levels, nodes or elements. You can select schemes for control of child element generation and geometry splitting. For time-dependent problems you can select to start a new refinement at any level in a hierarchy of meshes.