Dear Roy,
On Thu, 9 Apr 2009, Tim Kroeger wrote:
On Thu, 9 Apr 2009, Roy Stogner wrote:
Ugh, definitely. Although as an immediate start: do you have
tracefiles turned on?
No, I didn't. Actually, up to now, I didn't know this option exists.
I have restarted it now with that option enabled, and the application
will now also once again write all the refinement flags to a file, so
that the bug can hopefully be reproduced more easily.
The tracefile is attached now. I don't think it will help a lot,
though.
Also, I attached a test program that reproduces the crash. It's very
similar to the one I sent you a couple of weeks ago. Again, you can
find the file it reads the refinement flags from at
www.mevis.de/~tim/ref-flags.gz (190KB, unzips to 19MB). You need to
run the program on 24 CPUs. Unfortunately, it takes quite a while
before it crashes since the first 50 refinement/coarsening steps are
performed successfully; the crash occurs at the 51st step.
Let me know whether you can reproduce the crash.
Best Regards,
Tim
--
Dr. Tim Kroeger
[email protected] Phone +49-421-218-7710
[email protected] Fax +49-421-218-4236
Fraunhofer MEVIS, Institute for Medical Image Computing
Universitaetsallee 29, 28359 Bremen, Germany
#include <iostream>
#include <math.h>
#include "libmesh.h"
#include "mesh.h"
#include "mesh_generation.h"
#include "mesh_refinement.h"
#include "elem.h"
#include "equation_systems.h"
#include "linear_implicit_system.h"
#include "transient_system.h"
static void refine_according_to_file(Mesh& mesh, std::istream& f)
{
std::string caption;
f >> caption;
std::cout << "Read refinement flags for " << caption << std::endl;
MeshBase::element_iterator elem_it = mesh.active_elements_begin();
const MeshBase::element_iterator elem_end = mesh.active_elements_end();
for (; elem_it != elem_end; ++elem_it)
{
unsigned int v = 0;
f >> v;
(*elem_it)->set_refinement_flag(static_cast<Elem::RefinementState>(v));
}
std::cout << "Process refinement for " << caption << std::endl;
MeshRefinement meshRefinement(mesh);
meshRefinement.refine_and_coarsen_elements();
std::cout << "Finished refinement for " << caption << std::endl;
}
int main (int argc, char** argv)
{
LibMeshInit init (argc, argv);
Mesh mesh (3);
MeshTools::Generation::build_cube(mesh,
7,6,4,
-32.0,24.01,
-24.0,24.0,
-32.0,32.0,
HEX8);
std::ifstream f("ref-flags");
for(unsigned int i=0; i<12; i++)
{
refine_according_to_file(mesh,f);
}
std::cout << "Contract mesh" << std::endl;
mesh.contract();
for(unsigned int i=0; i<7; i++)
{
refine_according_to_file(mesh,f);
}
EquationSystems es(mesh);
es.add_system<TransientLinearImplicitSystem>("s");
es.get_system<TransientLinearImplicitSystem>("s").add_variable("v");
std::cout << "Init EquationSystems" << std::endl;
es.init();
for(unsigned int i=0; i<32; i++)
{
refine_according_to_file(mesh,f);
std::cout << "Reinit EquationSystems" << std::endl;
es.reinit();
}
return 0;
}
Stack frames: 10
0: print_trace(std::ostream&)
1: PetscVector<double>::map_global_to_local_index(unsigned int) const
2: PetscVector<double>::operator()(unsigned int) const
3: DofMap::enforce_constraints_exactly(System const&, NumericVector<double>*)
const
4: System::project_vector(NumericVector<double> const&, NumericVector<double>&)
const
5: System::project_vector(NumericVector<double>&) const
6: System::restrict_vectors()
7: System::prolong_vectors()
8: EquationSystems::reinit()
9: RFASimLibMeshRefinementEstSimple::refineAfter(EquationSystems&)
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel