Please find attached two SIF files. The first is a working sif file, and the second is the one that causes the crash. The one that crashed previously worked under the release revision.
The output of ElmerSolver electorstatic-crash.sif is
Code: Select all
blah
blah
ComputeChange: NS (ITER=3) (NRM,RELC): ( 0.90935729 0.21625704E-09 ) :: electrostatics
StatElecSolve: Solve (s) : 0.0000000000000000
StatElecSolve: Result Norm : 0.90935728663860727
StatElecSolve: Relative Change : 2.16257039433936301E-010
StatElecSolve:
ComputeChange: SS (ITER=1) (NRM,RELC): ( 0.90935729 2.0000000 ) :: electrostatics
FluxSolver: -------------------------------------
FluxSolver: Computing the flux
FluxSolver: -------------------------------------
Segmentation fault
The crash occurs in trunk/fem/src/FluxSolver.f90, on line 263 in revision 5010, due to the old flux variable being named "Flux Variable", which is now "Target Variable".
The VariableGet seems to fail, causing the member access FluxSol%Values to segfault. I am unsure exactly what should be being checked here; fortran is not my thing unfortunately.
The relevant valgrind output is:
==3014== Invalid read of size 4
==3014== at 0x8D77F31: fluxsolver_ (in /usr/local/elmer/share/elmersolver/lib/FluxSolver.so)
==3014== by 0x4FE1BCC: __mainutils_MOD_singlesolver (in /usr/local/elmer/lib/libelmersolver-6.1.so)
==3014== by 0x4FE200B: __mainutils_MOD_solveractivate (in /usr/local/elmer/lib/libelmersolver-6.1.so)
==3014== by 0x4FE27BC: solvecoupled.9333 (in /usr/local/elmer/lib/libelmersolver-6.1.so)
==3014== by 0x4FE4F1B: __mainutils_MOD_solveequations (in /usr/local/elmer/lib/libelmersolver-6.1.so)
==3014== by 0x50E327B: execsimulation.1937 (in /usr/local/elmer/lib/libelmersolver-6.1.so)
==3014== by 0x50E71D7: elmersolver_ (in /usr/local/elmer/lib/libelmersolver-6.1.so)
==3014== by 0x40123D: MAIN__ (in /usr/local/elmer/bin/ElmerSolver)
==3014== by 0x401C59: main (fmain.c:21)
==3014== Address 0x190 is not stack'd, malloc'd or (recently) free'd
Edit: Specify full path