Comments (24)
I've got the latest exodusI/nemesis and netcdf packages, and am going to work on this this week while on travel...
@jwpeterson, I'll point you to my branch to try when it is working, you can let me know how bad this hurts MOOSE before I commit it to libMesh/master.
from libmesh.
This is going to be a big deal - in particular, the new exodus implementation requires netcdf-4.1 or greater, which in turn requires hdf5.
since our old exodusII/nemesis API has so few requirements, I'm inclined to leave it for a while with an --enable-old-exodusII or something.
@roystgnr, @friedmud, @jwpeterson -- thoughts?
-Ben
from libmesh.
Was there a particular reason you were upgrading? I'd say just leave it alone until there is a feature we need or something is broken...
Derek
Sent from my iPhone
On Feb 3, 2013, at 12:38 PM, "Benjamin S. Kirk" [email protected] wrote:
This is going to be a big deal - in particular, the new exodus implementation requires netcdf-4.1 or greater, which in turn requires hdf5.
since our old exodusII/nemesis API has so few requirements, I'm inclined to leave it for a while with an --enable-old-exodusII or something.
@roystgnr, @friedmud, @jwpeterson -- thoughts?
-Ben
—
Reply to this email directly or view it on GitHub.
from libmesh.
On Feb 3, 2013, at 1:45 PM, "Derek Gaston" [email protected] wrote:
Was there a particular reason you were upgrading? I'd say just leave it alone until there is a feature we need or something is broken...
Derek
Most importantly would be "large model support" - greater than 2Gb is my understanding. Also, looks like nemesis is now rolled into exodus, with simple shims providing the nemesis API, so this would be the right thing(TM) going forward.
-Ben
from libmesh.
I gotcha. Well, give it a whirl then :-)
I would appreciate a --use-old-exodus or whatever. But since you're doing
the work I'll leave that up to you :-)
Derek
Sent from my iPad
On Feb 3, 2013, at 1:06 PM, "Benjamin S. Kirk" [email protected]
wrote:
On Feb 3, 2013, at 1:45 PM, "Derek Gaston" [email protected]
wrote:
Was there a particular reason you were upgrading? I'd say just leave it
alone until there is a feature we need or something is broken...Derek
Most importantly would be "large model support" - greater than 2Gb is my
understanding. Also, looks like nemesis is now rolled into exodus, with
simple shims providing the nemesis API, so this would be the right
thing(TM) going forward.
-Ben
—
Reply to this email directly or view it on
GitHubhttps://github.com//issues/35#issuecomment-13052891.
from libmesh.
On Feb 3, 2013, at 12:38 PM, "Benjamin S. Kirk" [email protected] wrote:
This is going to be a big deal - in particular, the new exodus implementation requires netcdf-4.1 or greater, which in turn requires hdf5.
This feels wrong. Like petsc requiring trilinos or openmpi requiring mpich. Nevertheless there is a possibility that we will need to write silo files, which are hdf5-based... So it could have additional benefits.
since our old exodusII/nemesis API has so few requirements, I'm inclined to leave it for a while with an --enable-old-exodusII or something.
@roystgnr, @friedmud, @jwpeterson -- thoughts?
Keep the old one as the default for a while?
Are you thinking of distributing hdf5 like we currently do with netcdf?
John
from libmesh.
I'd rather not distribute it (1) because configuring it takes as long (or longer) than libMesh, and (2) it is pretty widely available (more so than netcdf anyway). But I've got a fallback if we want to - since HDF5 is an autotools package it is easy to incorporate it, but at the cost of longer configures.
At any rate, I've got an exodus_refresh branch going at https://github.com/benkirk/libmesh.git
@jwpeterson, could you take a look at this and see how bad it is going to hurt you guys? By default it builds all the old stuff, you can force the new API by
$ ./configure ... --enable-netcdf=new --enable-exodus=new --enable-nemesis=new
It should find your HDF5 if it is there. If you don't have HDF5 you can still do
$ ./configure ... --enable-netcdf=new --enable-exodus=new --enable-nemesis=new --disable-hdf5
and that'll still build the new API, but my understanding is large files (>2Gb) won't work.
from libmesh.
I just pulled this down and I'm building it now...
from libmesh.
Looks like it's not quite working with in-tree building:
libtool: link: `/Users/gastdr/projects/libmesh/lib/libnetcdf.la' is not a valid libtool archive
I got that at the end of trying to compile MOOSE. We may have something wrong with our Makefile stuff...
I just "make install"ed and I'm rebuilding.
from libmesh.
Oh thanks, let me know either way and ill check the in tree stuff tomorrow.
I usually work out of tree until all is well to avoid unnecessary churn in the .gitignore file...
-Ben
On Feb 4, 2013, at 11:11 PM, "Derek Gaston" <[email protected]mailto:[email protected]> wrote:
Looks like it's not quite working with in-tree building:
libtool: link: `/Users/gastdr/projects/libmesh/lib/libnetcdf.la' is not a valid libtool archive
I got that at the end of trying to compile MOOSE. We may have something wrong with our Makefile stuff...
I just "make install"ed and I'm rebuilding.
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/35#issuecomment-13117393.
from libmesh.
Surprisingly.... all is well with MOOSE when using:
../configure --prefix=$INSTALL_DIR --with-methods="opt dbg" --enable-legacy-include-paths --enable-legacy-using-namespace --enable-netcdf=new --enable-exodus=new --enable-nemesis=new --disable-hdf5
That was easy ;-)
Thanks for doing this Ben!
from libmesh.
Awesome, thanks for testing it.
I'm planning to tag v0.9.0 as soon as everything is green again, and afterwards I'll merge this. We can then decide when to make this the new default.
from libmesh.
This is merged as of 9d7303f, however it is not yet the default.
At present, you can configure using the new code via
$ ./configure ... --enable-netcdf=new --enable-exodus=new --enable-nemesis=new
so @roystgnr it would be interesting to see what all those int64's do for you, which I think was the original motivation here.
from libmesh.
I'm going to make the 'new' flavors default, the 'old' will be optionally available.
from libmesh.
On Tue, Feb 12, 2013 at 9:37 AM, Benjamin S. Kirk
[email protected]:
I'm going to make the 'new' flavors default, the 'old' will be optionally
availableThanks.
Has anyone tried 1. Reading in GRIDS with new ExodusII version that have
been around awhile or 2. Tried loading solutions with the new format into
ParaView? I'll find out for myself, but was hoping I could be warned if
there are any surprises.
from libmesh.
I've done both, with no surprises.
from libmesh.
On Tue, Feb 12, 2013 at 9:52 AM, Benjamin S. Kirk
[email protected]:
I've done both, with no surprises.
Awesome, thanks.
from libmesh.
As far as in-tree (uninstalled) builds are concerned, the new netcdf doesn't work out of the box, since its an automake package. Those who are interested in doing uninstalled builds can work around it by doing:
${LIBMESH_DIR}/libtool --mode=install install -c
${LIBMESH_DIR}/contrib/netcdf/4.2.1.1/liblib/libnetcdf.la ${LIBMESH_DIR}/lib
But this doesn't feel like a great solution since you have to know the intricate details of netcdf's location within the contrib hierarchy.
from libmesh.
How do we get netcdf v4 to build correctly when hdf5 isn't in the compiler's default search path? Our own hdf5.m4 is autodetecting my hdf5 module based on the environment variables it sets, but we don't seem to be passing the resulting HDF5_CPPFLAGS/CXXLIBS information to contrib/netcdf/v4/configure, and looking through their configure.ac I don't even see how we'd pass that information in.
from libmesh.
Can you uncomment the end of configure.ac line 332 and see if that does it for you?
That seems a little heavy handed, passing all our optional includes and libs, but is the generic approach. Note though this can creep into our AC_OUTPUT more than I'd like, and to cherry-pick the options I'm considering something along these lines:
http://gnu-autoconf.7623.n7.nabble.com/AC-CONFIG-SUBDIRS-right-away-td9738.html
from libmesh.
On Thu, 14 Feb 2013, Benjamin S. Kirk wrote:
Can you uncomment the end of configure.ac line 332
That fixes configure, thanks! I'll scream soon if compiling fails.
That seems a little heavy handed
Very heavy-handed... I don't actually see what problems it could cause
other than unnecessarily huge compilation command lines in
subpackages, though. I guess the extra directory paths could slow
down compiles over NFS? The extraneous entries in LIBS might break
some shared library linkers and would probably break static libraries?
http://gnu-autoconf.7623.n7.nabble.com/AC-CONFIG-SUBDIRS-right-away-td9738.html
So we'd do each subdir one at a time, allowing us to pass in only the
flags that we know that subpackage needs? I love that solution in
theory. In practice, I see a _AC_SRCDIRS call in that AX_CONFIG_DIR
macro, and if we're using autoconf internals then I'd worry about
future autotools releases breaking things out from under us.
Roy
from libmesh.
The immediate annoyance I noted was that sometimes AC_OUTPUT would get invoked on reconfigure and LIBS=... would get handed back to us, which of course is not a problem since they were ours to begin with, but made the perflog configure output look horrible. :-)
But yeah, the idea would be to do each subdir one at a time, exactly when needed, specifying only the arguments it needs. This shows up on the list as a highly desired feature for autoconf, so maybe if we do it right it'll go upstream and no longer be unsupported.
from libmesh.
@permcody requested we also build the Fortran bindings -- easy enough, but I'll defer until tomorrow or the next day when I have a couple hours to devote to "automakethink."
Just a note so I don't forget.
from libmesh.
I added the Fortran bindings, and things seem to be good with the new Nemesis/Exodus/Netcdf.
from libmesh.
Related Issues (20)
- Enabling threaded print of element information HOT 1
- Abaqus mesh reading new error
- Incorrect VTK configuration flag suggested by configure HOT 8
- Installation with mac M1 HOT 8
- Support mixed-order meshes in `find_neighbors()`, `stitch_meshes()` HOT 1
- Spurious -I/usr/include/tirpc is added when autodetecting libtirpc in linker path
- Refactor HDG NS example to use FEMContext
- VTK output then read loses block id information HOT 5
- MatSetValues_MPIAIJ() triggers malloc error at line 565 during libMesh termination HOT 6
- Installation error due to petsc compatibility HOT 12
- constrain_element_matrix changes the col_dofs vector size HOT 3
- Investigating the possibility of only having one solution vector in systems HOT 3
- Make Abaqus node/side ID maps available
- DM type 'libmesh' did not attach the DM to the matrix HOT 6
- Issues with latest libmesh devel -> master merge HOT 1
- Operator `()` of a petsc vector is not safe if used together with `set()` in a threaded loop.
- The 'mesh.read()' operation encounters errors when executed with 2048 processors HOT 1
- ExodusII IO has variable ID bug which can prevent coordinates from being read-in from a file HOT 4
- The release v1.7.2 doesn't have the tarballs attached HOT 1
- "No rule to make target..." installation error on Windows HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libmesh.