dbeurle / imr Goto Github PK
View Code? Open in Web Editor NEWAn offline converter from Gmsh format to an intermediate representation in JSON format
License: MIT License
An offline converter from Gmsh format to an intermediate representation in JSON format
License: MIT License
Placeholder for discussion about the best way to process meshes for the FETI method.
@phuschke Can we rely on c++14?
I think that the catch path in missing in tests/ReaderTest.cpp
. Maybe use #include <catch/catch.hpp>
instead of #include <catch.hpp>
?
It would be cool to output the data into json format. It would be used to read in the data quickly by each process and the parsing can be minimal.
Neither
gmshreader --with-indices gmshMWE.msh
nor
gmshreader --local-ordering --with-indices gmshMWE.msh
gives the expected result.
gmshMWE.msh
$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
5
1 0 0 0
2 1 0 0
3 1 1 0
4 0 1 0
5 0.5 0.5 0
$EndNodes
$Elements
4
1 2 5 7 6 2 2 -1 1 2 5
2 2 5 7 6 2 1 -2 1 5 4
3 2 5 7 6 2 2 -1 2 3 5
4 2 5 7 6 2 1 -2 3 4 5
$EndElements
There is a new gmsh format. We should handle that.
It should be deriving from std::runtime_error instead and defining our own classes.
See http://en.cppreference.com/w/cpp/error for implementation details
Currently the clang toolchain does not enjoy those GNU macros.
We can get cmake to fetch catch using their instructions here: https://github.com/philsquared/Catch/blob/master/docs/build-systems.md#cmake
Abaqus has a nice structured mesh generator that should be read in and converted.
The output for the distributed mesh is a little confusing. @phuschke What exactly does the following mean? I have a unit square with four partitions of each one element. For the first partition I get:
{
"GlobalStartId" : [ 4 ],
"Master" : [ 1 ],
"NodeIds" : [
[ 9 ]
],
"Slave" : [ 4 ],
"Value" : [ 1 ]
}
From what I can gather, Master
is the owner (partition 1) and Slave
is partition 4. But this node is also shared on process 2 and 3, but there is no mention of this here. Is this something specific to FETI?
Also for the Value
field: it is 1 if this partition is the owner from processId == master_partition - 1 ? 1 : -1
but can't this be determined from Master
and the current process number? Also will these fields ever be more than one element? If not - can't we just use single values?
When outputting a serial mesh, sometimes the code speeds a very long time allocating and deallocating memory. This behavior is not apparent with decomposed meshes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.