I sent the message below earlier to libmesh-devel, but my message was pretty vague (apologies for that)... I wanted to follow up with a concrete test case to see if anyone could help out.

I've attached a slightly modified version of ex11.C: run it once with "generate_xdr_data=true" to generate data, then again with "generate_xdr_data=false" to read the data in. When I set "generate_xdr_data=false", I get the error reported below. (This only happens with >1 variables in the system.) Any thoughts on what I should change would be appreciated.

Many thanks,
David




On 09/15/2011 04:44 PM, David Knezevic wrote:
Hi all,

RBEvaluation makes a direct call to write_header and read_header, and this seems to be causing a problem.

For example, when I modify ex23 so that it has two variables ("u" and "v") rather than one, I get an error in rb_evaluation.C:1029 when the system tries to read in a header file before reading the subsequent sequence of .xdr files. The stack trace is below; the system is looking for a variable with name "", whereas it should be "u".

The header is written in rb_evaluation.C:

  Xdr header_data(file_name.str(), ENCODE);
  sys.write_header(header_data, "", false);


and also read in rb_evaluation.C with:

  Xdr header_data(file_name.str(), DECODE);
  sys.read_header(header_data, "", false);

I was wondering if there's anything obviously wrong with this usage of read/write_header? These methods appear to be used in a similar manner in equation_systems.C. In particular, I can't see why the 2-variable case triggers an error whereas the 1-variable case works fine?

Many thanks,
Dave


-----------------------------------------------------------------------------------------------------------------

ERROR: variable  does not exist in this system!
[0] src/systems/system.C, line 1076, compiled Sep  6 2011 at 22:15:39
terminate called after throwing an instance of 'libMesh::LogicError'
  what():  Error in libMesh internal logic

Program received signal SIGABRT, Aborted.
0x00007ffff08ccd05 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64    ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
    in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt
#0 0x00007ffff08ccd05 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff08d0ab6 in abort () at abort.c:92
#2 0x00007ffff0ce86dd in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007ffff6e670ef in libMesh::libmesh_terminate_handler () at src/base/libmesh.C:200 #4 0x00007ffff0ce6926 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007ffff0ce6953 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x00007ffff0ce6a5e in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #7 0x00007ffff76bf96f in libMesh::System::variable_number (this=0x7ea930, var=...) at src/systems/system.C:1076 #8 0x00007ffff76d2d4f in libMesh::System::read_header (this=0x7ea930, io=..., version=..., read_header=false, read_additional_data=true, read_legacy_format=false) at src/systems/system_io.C:232 #9 0x00007ffff7675450 in libMesh::RBEvaluation::read_in_basis_functions (this=0x7fffffffd920, sys=..., directory_name=..., read_binary_basis_functions=true) at src/systems/rb_evaluation.C:1029 #10 0x000000000044c09f in main (argc=1, argv=0x7fffffffe668) at ex23_vector.C:144
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to