![]() |
lymph
|
lymph (discontinuous poLYtopal methods for Multi-PHysics) [6] is an open-source Matlab code for the simulation of multiphyisics differential problems. lymph is developed at MOX (The Laboratory for Modeling and Scientific Computing, Department of Mathematics) at Politecnico di Milano. The development of lymph is part of the activities of the project NEMESIS (https://erc-nemesis.eu, P.I.@PoliMI Paola F. Antonietti) and involves the following research group:
clone git@bitbucket.org:lymph/lymph.git
ImportLymphPaths.m contained in the lymph folder. The source code and additional information can be found here.
Core Contains common tools for discontinuous Galerkin methods on polygonal grids.FEspace Dof maps and evaluation of basis functions on quadrature points.MeshGeneration PolyMesh Generation of a polytopal mesh based on PolyMesher and functions to compute neigboring elements/faces.PostProcessing Post-processing tools, to plot and export output.Quadrature Quadrature rules.Utilities Functions used extensively throughout the library.Physics Contains code to set-up and discretize specific PDE models.ImportLymphPaths.m Set up the environment paths to use lymph: call ImportLymphPaths in your Run*.m file (see below).MYPHYSICS below), all sharing the following structure (see the Heat folder for an example):Run*MYPHYSICS.m Callable script(s) to initialize lymph, set up the I/O parameters of the simulation, and launch the execution of a simulation (see also next point). Multiple files with such name can be present, e.g. to run single simulations, convergence analysis, etc. This/these file(s) must include the following lines: %% Import lymph and add path related to this physics.
run("../ImportLymphPaths.m")
MyPhysicsPath = pwd;
addpath(genpath(fullfile(ProblemPath,'Assembly')));
addpath(genpath(fullfile(ProblemPath,'InputData')));
... and same for all other directories related to MYPHYSICS ...
%% Simulation - Setup
run("../RunSetup.m")
MainFunctions Folder with actual main function of a simulation, launched by Run*MYPHYSICS.m.Assembly Folder with functions to assemble the system of interest.Error Folder with functions ompute error w.r.t. an exact solution (given in InputData).InputData Folder with parameters of the model and of its discretization.PostProcessing Folder with physics-specific functions for post-processing: see also ../Core/PostProcessing for physics-independent functions (e.g. conversion to VTK format).lymph tutorials distributed with the current release contain also a Doxygen folder with their own documentation.RunSetup.m To configure speficic run. In particular one can select the following options: % Plot polygonal mesh Setup.isPlotMesh = 0; % Save VTK polygonal mesh Setup.isSaveVTKMesh = 0; % Plot solution Setup.isPlotSolution = 0; % Save solution in .mat format Setup.isSaveSolution = 0; Setup.OutFolder = 'Output'; % Save solution for Paraview in .csv or .vtk format Setup.isSaveCSV = 0; Setup.isSaveVTK = 0; Setup.OutFolderVTK = 'OutputVTK'; % Compute errors Setup.isError = 1;
You can cite lymph by this documentation site (https://lymph.bitbucket.io/) and the following preprint:
P.F. Antonietti, S. Bonetti, M. Botti, M. Corti, I. Fumagalli, I. Mazzieri (2024). lymph: discontinuous poLYtopal methods for Multi-PHysics differential problems. arXiv preprint arXiv:2401.13376. https://doi.org/10.48550/arXiv.2401.13376
lymph is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. lymph 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with lymph. If not, see http://www.gnu.org/licenses/.
Mesh generation in lymph is based on PolyMesher (version v1.1), a library available at http://paulino.princeton.edu/software.html for educational or academic use only. All rights of reproduction or distribution of PolyMesher in any form are reserved. The release paper of PolyMesher is the following:
C. Talischi, G.H. Paulino, A. Pereira, I.F.M. Menezes (2012). "PolyMesher: A general-purpose mesh generator for polygonal elements written in Matlab", Structural and Multidisciplinary Optimization, DOI: 10.1007/s00158-011-0706-z
The developers of lymph acknowledge Prof. Paul Houston and Dr. Giorgio Pennesi for the original implementation of the quadrature-free approach [2] adopted in the library.
The developers of lymph acknowledge the support of