Archive for the '3D' Category; python mac OSX, windows; open source software modeling environment and pde solver

CompuCell is an open source software modeling environment and pde solver. It is largely used for cellular modeling (foams, tissues, etc.), however, efforts are being made to include fluid simulation capabilities. Created in collaboration between groups at IU and Notre Dame, CompuCell provides an easy user interface for complex cellular modeling.

Integration with SBW

We have conducted a preliminary integration of CompuCell3D with Systems Biology Workbench (SBW) to link to subcellular models. As a result users can select the level of detail in their models while working within a single integrated framework.

see :


Source Code and ChangeLog

SVN Repository

To download from our repository, use your favorite svn client and download from:

Known Issues and Requirements

  • Python 2.5
  • Ubuntu users must install python-qt4
  • ———
  • Python and MAC OSX

    Python comes pre-installed on Mac OS X, but due to Apple’s release cycle, it’s often one or even two years old. The overwhelming recommendation of the « MacPython » community is to upgrade your Python by downloading and installing a newer version from the Python standard release page.

    If you are using Mac OS X 10.5, see the Leopard wiki page for detailed information.

    If you’re just curious…

    You don’t have to download anything. You can run a Python interpreter by double-clicking on Applications / Utilities / Terminal (here’s a picture), then typing « python » into the window that opens up.

    You’ll see a prompt that looks like this:

    Python 2.3.5 (#1, Mar 20 2005, 20:38:20)
    [GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.

    (On Mac OS X 10.3 (Panther), it will say « Python 2.3.0 », an older version.)Try typing « 2 + 2 » and hit « Enter »:

    >>> 2 + 2

    You’ve just evaluated your first Python expression. It’s a simple environment, but good enough to work through the Python tutorial.By the way, if you download the recommended upgrade mentioned at the top of this page, the « IDLE » development environment will make working through the tutorial a bit easier.

  • ParaView is an application framework as well as a turn-key application; Modeling software OpenFOAM and ParaView ; mesh processing: generation, manipulation, conversion

    ParaView is an open source, multi-platform data analysis and visualization application. It has a client-server architecture to facilitate remote visualization of datasets

    It is an application built on top of the Visualization Tool Kit (VTK) libraries.

    The ParaView code base is designed in such a way that all of its components can be reused to quickly develop vertical applications. This flexibility allows ParaView developers to quickly develop applications.

    Input/Output and File Format

    • Supports a variety of file formats including: VTK (new and legacy, all types including parallel, ascii and binary, can read and written).
    • Various polygonal file formats including STL and BYU (by default, read only, other VTK writers can be added by writing XML description).
    • Many other file formats are supported. See ParaView Readers and ParaView Writers for a full list.

    CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. ParaView utilizes CMake for the software compilation process.


    ParaView is used as the visualization platform for the Modeling software OpenFOAM (Open Field Operation and Manipulation).It is primarily a C++ toolbox for the customisation and extension of numerical solvers for continuum mechanics problems, including computational fluid dynamics (CFD). It comes with a growing collection of pre-written solvers applicable to a wide range of problems.

    First major general-purpose CFD package to use polyhedral cells. This functionality is a natural consequence of the hierarchical description of simulation objects.

    OpenFOAM compares favourably with the capabilities of most leading general-purpose commercial closed-source CFD packages. It relies on the user’s choice of third party pre- and post-processing utilities, and ships with:

    • a plugin (paraFoam) for visualisation of solution data and meshes in ParaView.
    • a wide range of mesh converters allowing import from a number of leading commercial packages
    • an automatic hexahedral mesher to mesh engineering configurations

    OpenFOAM was conceived as a continuum mechanics platform but is ideal for building multi-physics simulations.

    OpenCFD develop OpenFOAM in the Linux/UNIX operating system because: we believe it is the best platform for this kind of high end simulation code development and operation; Linux is efficient, robust, reliable and flexible and undergoes rapid development and improvement; Linux is open source, like OpenFOAM; Linux is very effective for parallel operation on Beowulf clusters.

    OpenFOAM is open source software so people can freely compile it on any operating system they choose. Most OpenFOAM users are running Linux, so this site offers the download of binaries for selected Linux systems.

    As the present time we are unaware of any binary distributions for Windows or MacOSX. However, ports to these operating systems have been the subject of debate on the OpenFOAM discussion site, which may provide the best source of information on the matter.

    OpenFOAM uses finite volume numerics to solve systems of partial differential equations ascribed on any 3D unstructured mesh of polyhedral cells.

    Mesh generation

    OpenFOAM applications handle unstructured meshes of mixed polyhedra with any number of faces: hexahedra, tetrahedra, degenerate cells, basically anything.

    Mesh generation is made simple by the fact that a cell is simply represented as a list of faces and a face as a list of vertices: this makes mesh handling very easy even for complex meshes with, say, embedded refinement or complex shapes near the boundary.

    OpenFOAM is supplied with the following mesh generator tools that run in parallel.

    Mesh generation tools

    blockMesh A multi-block mesh generator
    extrude2DMesh Takes 2D mesh (all faces 2 points only, no front and back faces) and creates a 3D mesh by extruding with specified thickness
    extrudeMesh Extrude mesh from existing patch (by default outwards facing normals; optional flips faces) or from patch read from file
    snappyHexMesh Automatic split hex mesher. Refines and snaps to surface

    The main mesh generators cover two extremes: snappyHexMesh, that can mesh to complex CAD surfaces; blockMesh a simple file-driven block mesh generator.

    Mesh manipulation

    OpenFOAM is supplied with several utilties that perform mesh checking and manipulation. The full list of utilties is given below

    Mesh manipulation

    attachMesh Attach topologically detached mesh using prescribed mesh modifiers
    autoPatch Divides external faces into patches based on (user supplied) feature angle
    cellSet Selects a cell set through a dictionary
    checkMesh Checks validity of a mesh
    createBaffles Makes internal faces into boundary faces. Does not duplicate points, unlike mergeOrSplitBaffles
    createPatch Utility to create patches out of selected boundary faces. Faces come either from existing patches or from a faceSet
    deformedGeom Deforms a polyMesh using a displacement field U and a scaling factor supplied as an argument
    faceSet Selects a face set through a dictionary
    flattenMesh Flattens the front and back planes of a 2D cartesian mesh
    insideCells Picks up cells with cell centre ’inside’ of surface. Requires surface to be closed and singly connected
    mergeMeshes Merge two meshes
    mergeOrSplitBaffles Detects faces that share points (baffles). Either merge them or duplicate the points
    mirrorMesh Mirrors a mesh around a given plane
    moveDynamicMesh Mesh motion and topological mesh changes utility
    moveEngineMesh Solver for moving meshes for engine calculations.
    moveMesh Solver for moving meshes
    objToVTK Read obj line (not surface!) file and convert into vtk
    pointSet Selects a point set through a dictionary
    refineMesh Utility to refine cells in multiple directions
    renumberMesh Renumbers the cell list in order to reduce the bandwidth, reading and renumbering all fields from all the time directories
    rotateMesh Rotates the mesh and fields from the direcion n1   \special {t4ht= to the direction n2   \special {t4ht=
    setSet Manipulate a cell/face/point set interactively
    setsToZones Add pointZones/faceZones/cellZones to the mesh from similar named pointSets/faceSets/cellSets
    splitMesh Splits mesh by making internal faces external. Uses attachDetach
    splitMeshRegions Splits mesh into multiple regions
    stitchMesh ’Stitches’ a mesh
    subsetMesh Selects a section of mesh based on a cellSet
    transformPoints Transforms the mesh points in the polyMesh directory according to the translate, rotate and scale options
    zipUpMesh Reads in a mesh with hanging vertices and zips up the cells to guarantee that all polyhedral cells of valid shape are closed

    Mesh motion

    OpenFOAM adopts a novel approach to mesh motion by defining it in terms of the boundary motion which is extremely robust.

    The solver need only define the the motion of the boundary and everything else will be done automatically. The open architecture of OpenFOAM solver codes allows quick and efficient implementation: mesh motion can be based on any solution variable, either local or integrated and by dynamically adjusted during the run.

    Mesh motion is also transparently integrated with top-level models: the model writer does not see the additional complexity, which is conveniently packaged within the discretisation operators.

    For examples of automated mesh motion in OpenFOAM, see Solutions

    Mesh conversion

    OpenFOAM accepts meshes generated by any of the major mesh generators and CAD systems. Listed below are converter utlities for the major commercial mesh generators. Note that it is also possible to import the meshes from most general purpose mesh generators since they will export in a format read by one of the converters.

    Mesh converters

    ansysToFoam Converts an ANSYS input mesh file, exported from I-DEAS, to OPENFOAM®format
    cfx4ToFoam Converts a CFX 4 mesh to OPENFOAM®format
    fluent3DMeshToFoam Converts a Fluent mesh to OPENFOAM®format
    fluentMeshToFoam Converts a Fluent mesh to OPENFOAM®format including multiple region and region boundary handling
    foamMeshToFluent Writes out the OPENFOAM®mesh in Fluent mesh format
    foamToStarMesh Reads an OPENFOAM®mesh and writes a PROSTAR (v4) bnd/cel/vrt format
    gambitToFoam Converts a GAMBIT mesh to OPENFOAM®format
    gmshToFoam Reads .msh file as written by Gmsh
    ideasUnvToFoam I-Deas unv format mesh conversion
    kivaToFoam Converts a KIVA grid to OPENFOAM®format
    mshToFoam Converts .msh file generated by the Adventure system
    netgenNeutralToFoam Converts neutral file format as written by Netgen v4.4
    plot3dToFoam Plot3d mesh (ascii/formatted format) converter
    polyDualMesh Calculate the dual of a polyMesh. Adheres to all the feature and patch edges
    sammToFoam Converts a STAR-CD SAMM mesh to OPENFOAM®format
    star4ToFoam Converts a STAR-CD (v4) PROSTAR mesh into OPENFOAM®format
    starToFoam Converts a STAR-CD PROSTAR mesh into OPENFOAM®format
    tetgenToFoam Converts .ele and .node and .face files, written by tetgen
    writeMeshObj For mesh debugging: writes mesh as three separate OBJ files which can be viewed with e.g. javaview

    FreeSurfer is a set of automated tools for reconstruction of the brain’s cortical surface from structural MRI data, and overlay of functional MRI data onto the reconstructed surface.

    FreeSurfer is a set of automated tools for reconstruction of the brain’s cortical surface from structural MRI data, and overlay of functional MRI data onto the reconstructed surface.

    FreeSurfer is brought to you by the Athinoula A. Martinos Center for Biomedical Imaging. Support for this research was provided in part by the National Center for Research Resources (P41-RR14075, R01 RR16594-01A1 and the NCRR BIRN Morphometric Project BIRN002, U24 RR021382), the National Institute for Neurological Disorders and Stroke (R01 NS052585-01), the National Institute of Biomedical Imaging and Bioengineering, as well as the Mental Illness and Neuroscience Discovery (MIND) Institute and is part of the National Alliance for Medical Image Computing (NA-MIC) funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149.

    FreeSurfer Beginners Guide

    FreeSurfer is a freely available software package developed by investigators at the Athinoula A. Martinos Center for Biomedical Imaging used for a number of procedures including:

    1. Creation of computerized models of the brain from magnetic resonance imaging (MRI) data. link
    2. Processing of functional magnetic resonance imaging (fMRI) data. link
    3. Measuring a number of morphometric properties of the brain including cortical thickness and regional volumes. link
    4. Intersubject averaging of structural and functional data using a procedure that aligns individuals based on their cortical folding patterns for optimal alignment of homologous neural regions. link

    Machine Requirements

    To run FreeSurfer, you will need either a PC running Linux or a Macintosh running OS X.

    FreeSurfer consumes a lot of processor time, memory resources and disk space, so it is recommended to run FreeSurfer on as powerful a machine as you have available. For example, at MGH we typically run Linux CentOS 4 on 2.5GHz dual processor AMD Opterons with 4 to 8 GB of DDR SDRAM, and 250GB of disk space.


    The FreeSurfer tools deal with two main types of data: volumetric data (volumes of voxels) and surface data (polygons that tile a surface). The talks and tutorials should familiarize you with FreeSurfer’s volume and surface processing streams, the recommended workflow to execute these, and many of their component tools. The tutorials also describe some of FreeSurfer’s tools for registering volumetric datasets, performing group analysis on morphology data, and integrating multi-modal output with FreeSurfer (overlaying color coded parametric maps onto the cortical surface and visualizing plotted results). After completing the tutorials, you should be able to:

    • perform surface reconstructions;
    • generate subcortical segmentations;
    • fix errors encountered during the volume or surface processing;
    • overlay functional data onto surfaces;
    • perform group analysis of structural (e.g. thickness) and functional data.

    code; matlab; mesh; Source Signal Imaging, developers of EMSE Suite. EMSE Suite is a Windows-based software toolkit for 4D multimodal functional brain imaging

    Welcome to Source Signal Imaging, developers of EMSE Suite. EMSE Suite is a Windows-based software toolkit for 4D multimodal functional brain imaging, including analysis, source estimation, image processing, and visualization. MEG/EEG and MRI/fMRI datasets from many vendors and standard formats may be combined to obtain results not available from independent analyses of the separate modalities. First introduced in 1996, and now used by clinicians and researchers worldwide, EMSE Suite has a modular architecture, rich feature set and relatively low cost. Click on the menu to the left to find information about our products, news of upcoming events, links to other sites of interest, as well as access to original publications.

    EMSE 5.3 Release Candidate 3 is here
    6.22.09 We have added many new features and improvements

    Mesh Generation using Matlab ; mesh generator, 2D and 3D;

    Mesh Generation using Matlab

    These days most of the research in the field of fluids, structures, porous media, brain computer interfacing you name it, uses numerical simulations. Reason: It is much cheaper and many times faster compared to experiments. Mesh Generation forms an integral part of numerical analysis/simulation.
    Although, there are plenty of commercial softwares based on Finite Element Methods and Finite Volume Methods like COMSOL, FLEUNT, ANSYS, NUMECA and many more with exceptional Mesh/Grid Generation features (amira).
    But many times its difficult to use the meshes generated by these softwares which suits to your particular simulation need.
    Reason: Many of the exsiting software don’t have this feature where you can create a mesh and use it some which have such features requires you to do some complicated modifications in your code to import these meshes. There are although loads of mesh generator available some of which open source and free to download.
    But, then again problem comes does these free source code suits your purpose. I encountred this problem over the last couple of months.
    I am doing research in the field of Petroleum Reservoir Simulation and I need to test a lot of numerical examples on different sorts of meshes/grids in 2 and 3D. I do most of my simulation work in MATLAB, some people might argue that MATLAB is slow and all sorts of reason about other programming languages are faster like C++ and Fortran. I don’t deny that fact but on the other hand the library of existing function which matlab has is amazing and its Array handling feature and sparse code it amazing too. The only and important reason I use MATLAB is its capability to handle array operations.
    {In my simulation code I have to solve at times 9 simulatneous equations in 2D and 27 equations in 3D, which maximizes use of array operations. I also frequently use MAPLE to do my algebra and other good thing about MATLAB is that I can directly import the MAPLE algebra in Array Format into MATLAB which suits my purpose}

    Now comming to the meshes in MATLAB, try doing a google on ‘meshes in MATLAB’ or ‘grid generation in 2 and 3D in MATLAB’, a invested a lot of time to find some unseful source code in matlab searching on google groups etc the only useful package I found was by Per-Olof Persson titled ‘DistMesh – A Simple Mesh Generator in MATLAB’.



    No doubt its an amazing piece of work but again it didnt realy suits my purpose. The reason being I needed unstructured meshes of different element types in 3D like prisms, hex, tetra and pyramids. In 2D also I needed meshes which are boundary aligned to control volume and are matching to the underlying medium.

    So, What next ? I started from scratch and now I have come up with stand alone code in MATLAB which has functionality to create different kind of meshes in 2D and 3D. These are structured and Unstructured meshes, perturbed and bondary aligned too. If any one is in need of such meshes in 2 and 3D please have a look at:

    Then you can drop me an email and I will get back to you and will help you and if required will also provide you with the source code if it suits your purpose.


    Blog Stats

    • 224 450 hits


    Flickr Photos

    janvier 2021
    L M M J V S D