|
From: | Richard |
Subject: | Re: Calculations on data on triangular mesh. |
Date: | Thu, 25 Oct 2012 20:03:02 +0100 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121010 Thunderbird/16.0.1 |
On 25/10/2012 18:57, Juan Pablo Carbajal wrote:
On Thu, Oct 25, 2012 at 4:25 PM, Richard Crozier <address@hidden> wrote:Hi, I want to do some post-processing of data generated using a 2D finite element code. The code produces the nodal quantities of the solution on a delauney triangulation. The data I have in the solution are the vertex locations, a map of these vertices for the triangles and values of the solution at the vertices. What I would like to know is, is there a library of functions for efficiently working with this kind of data? The kind of operations I am interested in are interpolation at arbitrary points, integration over regions of the triangulation, getting triangle areas, centroids etc etc. I would like to avoid writing all this code from scratch. I have looked around for this on Octave Forge and so on, but haven't come across anything appropriate yet. The code in question by the way is freely available and hosted here: https://sourced.ecdf.ed.ac.uk/projects/see/xfemm It is a mex interface I have created to the core C++ magnetics solver from this program: http://www.femm.info/wiki/HomePage -- View this message in context: http://octave.1599824.n4.nabble.com/Calculations-on-data-on-triangular-mesh-tp4645732.html Sent from the Octave - General mailing list archive at Nabble.com. _______________________________________________ Help-octave mailing list address@hidden https://mailman.cae.wisc.edu/listinfo/help-octaveHi Richard, Thank you for your link. Are you in contact with the developer of FEMM. I also use it but since it is not licensed under a GPL-compatible license we cannot add an interface in Octave Forge. You may find the packages msh, fpl and geometry relatively useful. There is many functionality missing and it would be great if you develop anything missing that you share it we us. To interpolate in a triangular mesh you could build the trick with griddata, but the best is to write your own bilinear interpolation (if that is what you want) on the triangles. I have code but is not documented. I can share if you want, but I do not promise good quality :D. Indeed... I may wrote a function to interpolate on a triangular mesh after the 29th... I am forwarding Carlo who is the one actively developing most of the FEM tools.
Juan,I am in contact occasionally with the FEMM author, but he was not interested in my proposal which was to let me use my modified version of the magnetics solver code under an LGPL licence. I don't know if the FEMM author would be any more interested in the full GPL or another licence. In any case it uses Triangle (made by Jonathan Shrewchek) which is provided under similar terms to FEMM.
If you use FEMM, you might find my code useful, I have made a function (writefemmfile.m) which can output a file in FEMM's input format given a problem definition stored as a normal Octave/Matlab structure. The FEMM solver C++ code can also be compiled as a standalone executable as well as a mexfunction. The mexfunction works with Octave, too. My 'interface' mexfunction though really just calls the FEMM code with a string containing the name of .fem file. I have replaced all the Windows-only MFC code with standard C++ so it can also be compiled on linux, and doesn't require Wine. I have also created a lot of helper functions in m-code for creating the problem structure (e.g. addnode_mfemm.m, addsegment_mfemm.m and similar). These are analagous to the existing OctaveFEMM interface code.
Note this is only the magnetics solver though.I want to implement all the post-processing capabilities of FEMM, but in Matlab and Octave compatible code. All mcode I have written for pre-processing (problem definition) and post-processing is released under the Apache V2.0 licence. The modified FEMM sources are provided under an Aladdin Free Public Licence.
At some point in the long term future I can consider replacing the actual solver code as well with something with a less restrictive licence. The alternative is to write a magnetics solver for FAESOR which is a 3D GPL finite element package for Matlab (haven't tested this extensively in Octave, but I'm pretty sure it works, apart from some visualisation code.). You can find FAESOR here:
http://hogwarts.ucsd.edu/~pkrysl/faesor/faesor_publish.htmlIn case you are interested. If you would like to help make the post-processing code for my FEMM interface, you, or anyone else are more than welcome!
Richard -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
[Prev in Thread] | Current Thread | [Next in Thread] |