Hello, I would like to patch gmsh in order to output multiple ``layers'' of ghost nodes when partitioning.
I work on a finite-volume solver called FiPy ( http://www.ctcms.nist.gov/fipy/). FiPy has been built to dovetail with Gmsh in a few regards, one of which is mesh partitioning. We have been using gmsh-2.5.0-svn to output partitioned meshes with ghost-node information, which we then read back into FiPy for use within our system. This has all been working fine and dandy, but FiPy users often want to solve fourth-order equations like Cahn-Hilliard. Obviously, we'd like to support parallel solving for these problems and thus we need to partition meshes accordingly. The problem is that gmsh only currently outputs one layer of ghost nodes and a higher-order problem like Cahn Hilliard requires two layers of ghost nodes to work properly in parallel. I've taken a look at the Gmsh source, and I think I can patch the PartitionMesh(GModel *const model, meshPartitionOptions &options) function within ``Mesh/meshPartition.cpp'' to support multiple layers of ghost nodes. It looks straightforward (perhaps deceptively so). Unfortunately, I am unable to build the nightly source. I get the follow error during make: [ 21%] Building CXX object CMakeFiles/gmsh.dir/Solver/elasticityTerm.cpp.o [ 21%] Building CXX object CMakeFiles/gmsh.dir/Solver/elasticitySolver.cpp.o In file included from /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:8: /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.h:82: error: ‘lua_State’ has not been declared /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.h:84: error: ‘lua_State’ has not been declared /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:265: error: ‘lua_State’ has not been declared /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp: In member function ‘void elasticitySolver::addDirichletBCLua(int, int, int, std::string, int*)’: /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:268: error: expected type-specifier before ‘simpleFunctionLua’ /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:268: error: cannot convert ‘int*’ to ‘simpleFunction<double>*’ in assignment /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:268: error: expected `;' before ‘simpleFunctionLua’ /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp: At global scope: /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:295: error: ‘lua_State’ has not been declared /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp: In member function ‘void elasticitySolver::addNeumannBCLua(int, int, std::string, int*)’: /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:298: error: expected type-specifier before ‘simpleFunctionLua’ /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:298: error: cannot convert ‘int*’ to ‘simpleFunction<SVector3>*’ in assignment /users/obeirne/gmsh/gmsh-2.5.0-svn-20100615-source/Solver/elasticitySolver.cpp:298: error: expected `;' before ‘simpleFunctionLua’ make[2]: *** [CMakeFiles/gmsh.dir/Solver/elasticitySolver.cpp.o] Error 1 make[1]: *** [CMakeFiles/gmsh.dir/all] Error 2 make: *** [all] Error 2 If anyone can provide any insight on what's going on with the nightly source, that would be welcome. Also, if anyone can comment on patching for multiple layers of ghost nodes, I would really appreciate it. James
_______________________________________________ gmsh mailing list [email protected] http://www.geuz.org/mailman/listinfo/gmsh
