Home Teaching Research & Publications CV Conferences Resources CAM seminar Graduate Study in Math

MMPDElab (v 1.0)

MMPDElab is a package written in MATLAB for adaptive mesh movement and adaptive moving mesh P1 finite element solution of second-order partial different equations (PDEs) having continuous solutions. The adaptive mesh movement is based on the new implementation of the moving mesh partial differential equation (MMPDE) method. The mesh equation is integrated using either ode45 (an explicit MATLAB ODE solver) or ode15s (an implicit MATLAB ODE solver) while physical PDEs are discretized in space using P1 conforming finite elements on moving meshes and integrated in time with the fifth-order Radau IIA method (an implicit Runge-Kutta method) with a two-step error estimator for time step selection. An introduction of this package is given in MMPDElab_Intro_arXiv1904_05535.pdf (arXiv:1904.05535), which is also contained in this distribution.

Copyright (C) 2019 Weizhang Huang (whuang@ku.edu)

MMPDElab is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

MMPDElab 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 Affero General Public License.

List of files

    MMPDElab_v1_all.tar.gz : All files of MMPDElab (v 1.0)

    MMPDElab_Intro_arXiv1904_05535.pdf: An Introduction to MMPDElab
    License_MMPDElab.txt : Lincense file

    src_MMPDElab/Matrix_absA.m : computes sqrt(A*A).
    src_MMPDElab/Matrix_AT.m : computes A'.
    src_MMPDElab/Matrix_average.m : computes the element-wise average of M.
    src_MMPDElab/Matrix_ceil.m : sets a ceiling on the eigenvalues of M.
    src_MMPDElab/Matrix_det.m : computes det(A).
    src_MMPDElab/Matrix_detE.m : computes the det of the edge matrix.
    src_MMPDElab/Matrix_edge.m : computes the edge matrix.
    src_MMPDElab/Matrix_edge2.m : computes the edge matrix.
    src_MMPDElab/Matrix_inv.m : computes inv(A).
    src_MMPDElab/Matrix_mult.m : computes A*B.
    src_MMPDElab/Matrix_sqrtA.m : computes sqrt(A).
    src_MMPDElab/Matrix_trace.m : computes trace(A).
    src_MMPDElab/Matrix_traceAAT.m : computes trace(A*A^T).
    src_MMPDElab/Matrix_traceAMAT.m : computes trace(A*M*A^T).

    src_MMPDElab/MovFEM_bvp.m : solves BVPs using the moving mesh P1 FEM
    src_MMPDElab/MovFEM_Error_P1L2.m : computes the L2 error in P1 FE approximation
    src_MMPDElab/MovFEM_Error_P1Linf.m : computes the L_inf error in P1 FE approximation
    src_MMPDElab/MovFEM_int_weights.m : defines the weights for numerical integration in FE discretization
    src_MMPDElab/MovFEM_jac.m : computes the Jacobian matrix of the FE equations
    src_MMPDElab/MovFEM_jpattern.m : compute the pattern matrix for the Jacobian matrix of the FE equations
    src_MMPDElab/MovFEM_mass.m : compute the mass matrix for the FE equations
    src_MMPDElab/MovFEM_radau45TS.m : implements the Radau 45 two-step method
    src_MMPDElab/MovFEM_rhs.m : computes the rhs of the FE equations
    src_MMPDElab/MovFEM.m : solve IBVPs using the moving mesh P1 FEM

    src_MMPDElab/MovMesh_circle2tri.m : computes a triangular mesh for a circle
    src_MMPDElab/MovMesh_cube2tet.m : computes a tetrahedral mesh for a cube
    src_MMPDElab/MovMesh_freeBoundary_faceNormal.m : computes the outward unit normals for the boundary facets
    src_MMPDElab/MovMesh_freeBoundary_vertexNormal.m : computes the outward unit normals for the boundary vertices
    src_MMPDElab/MovMesh_GradHessianRecovery.m: recovers the gradient and Hessian of a P1 FE solution at vertices
    src_MMPDElab/MovMesh_GradKRecovery.m : recovers the gradient of a P1 FE solution on elements
    src_MMPDElab/MovMesh_GradRecovery.m : recovers the gradient of a P1 FE solution at vertices
    src_MMPDElab/MovMesh_LinInterp.m : computes linear interpolation
    src_MMPDElab/MovMesh_MeshMerge.m : merges two meshes that do not overlap but may share common boundary vertices
    src_MMPDElab/MovMesh_MeshQualMeasure.m : computes mesh quality measures
    src_MMPDElab/MovMesh_MeshQualMeasure2.m: computes mesh quality measures (2nd type)
    src_MMPDElab/MovMesh_MeshRemoveNodes.m : removes a node from a mesh
    src_MMPDElab/MovMesh_MeshUniformRefine.m : uniformly refines a mesh
    src_MMPDElab/MovMesh_metric_arclength.m : computes the arclength metric tensor
    src_MMPDElab/MovMesh_metric_F2C.m : computes the metric tensor on a coarse mesh from that on a fine mesh
    src_MMPDElab/MovMesh_metric_intersection.m : computes the intersection of two metric tensors
    src_MMPDElab/MovMesh_metric_iso.m : computes an isotropic metric tensor
    src_MMPDElab/MovMesh_metric_smoothing.m : smoothes the metric tensor
    src_MMPDElab/MovMesh_metric.m : computes a metric tensor
    src_MMPDElab/MovMesh_rect2tri.m : computes a triangular mesh for a rectangle
    src_MMPDElab/MovMesh_X.m: integrates the MMPDE over a step (x-formulation with M = I)
    src_MMPDElab/MovMesh_XM.m : integrates the MMPDE over a step (x-formulation)
    src_MMPDElab/MovMesh.m : integrates the MMPDE over a step (xi-formulation)

    examples/ex1d_1.m : generates an adaptive mesh for a given function (1D)
    examples/ex1d_burgers.m : solves the 1D Burgers equation
    examples/ex1d_burgers2.m : solves the 1D Burgers equation (2nd example)
    examples/ex1d_heat.m : solves the 1D heat equation
    examples/ex1d_poisson.m : solves the 1D Poisson equation
    examples/ex2d_1.m : generates an adaptive mesh for a given function (2D)
    examples/ex2d_2_Lshape.m : generates an adaptive mesh for a given function (for L-shaped domain, 2D)
    examples/ex2d_3_hole.m : generates an adaptive mesh for a given function (for domain with a hole, 2D)
    examples/ex2d_4_horseshoe.m : generates an adaptive mesh for a given function (for horseshoe domain, 2D)
    examples/ex2d_burgers_2level.m: solve the 2D Burgers equation using two-level moving mesh strategy
    examples/ex2d_burgers.m : solve the 2D Burgers equation
    examples/ex2d_combustion.m : solve a combustion model
    examples/ex2d_heat.m : solve the 2D heat equation
    examples/ex2d_poisson_Lshape.m : solve the Poisson equation on L-shaped domain
    examples/ex2d_poisson.m : solve the Poisson equation
    examples/ex2d_ut.m : solve u_t = 0 in 2D
    examples/ex3d_1.m : generates an adaptive mesh for a given function (3D)
    examples/ex3d_heat.m : solve the 3D heat equation
    examples/ex3d_poisson.m : solve the 3D Poisson equation