GithubHelp home page GithubHelp logo

hpfem / hermes-legacy Goto Github PK

View Code? Open in Web Editor NEW
68.0 68.0 47.0 270.51 MB

hp-FEM library

Home Page: http://hpfem.org/

Eiffel 1.31% C++ 95.38% C 0.54% Shell 0.01% Perl 0.07% Objective-C 0.01% JavaScript 0.01% Python 2.69%

hermes-legacy's People

Contributors

aayush avatar amuthan avatar blackvladimir avatar certik avatar colman01 avatar csce622 avatar dalg24 avatar davidquantum avatar davoodansari avatar fmach avatar karban avatar l-korous avatar mattpap avatar melaniebittl avatar migueltiburon avatar moritz-braun avatar nikola-m avatar solin avatar vopickafrantisek avatar zhonghua avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

hermes-legacy's Issues

fix buildbots

Currently the buildbots are set for h1d, h2d and h3d separately. The build script has to be updated to reflect that now it has to be tested using the unified hermes repository.

add example-np

We lost it by accident when merging master with the change branch.

It needs to be copied from there and commented out, until it is updated to the latest api.

remove gitosis, setup automatic web hooks from github

One needs to setup webhooks from github. I have done this for sympy already and it works great.

So we will push things to github, and then spilka will receive the webhook and pull the latest changes (rebuilding docs, notifying the buildbot and so on...).

fix the refine quads->triangles tests

They sometimes work, sometimes fail and the implementation is a bit hackish. This needs to be fixed.

Comments
solin July 27, 2010 | link | edit | delete
Zhonghua made an improvement so that the error in parallel testing disappeared. But he still needs to get rid of dumping data into files during these tests.

tutorial 22 does not give right solution

As we found out with Pavel, the tutorial example 22 does not give correct solution. It does however, if the time step is shortened to 0.1. It does not work here in hpfem/master in the same way as it does not work in step-1.

ubuntu lucid AMD64 hermes3d: 3 tests failing out of 231

99% tests passed, 3 tests failed out of 231

Label Time Summary:
long = 9181.28 sec

Total Test time (real) = 9535.61 sec

The following tests FAILED:
209 - output-vtk-sln-5 (Failed)
211 - output-vtk-vec-sln-5 (Failed)
212 - output-vtk-3sln-5 (Failed)
Errors while running CTest
make: *** [test] Error 8

Test 209 has a lot of output in the log file. Is there a way to attach a gzipped file??

Thanks,
-osman

Unify caching in H2D and H3D assembling

We need to determine whether the caching from H2D is better
than the one in H3D and if so, change the H3D case to the H2D one.
Also edge integration orders are treated differently in H2D and H3D.

ubuntu lucid AMD64 hermes3d failing to build

I have cloned the whole hermes repo. 1d and 2d built w/o problems.
1D, all tests pass. in 2D, some of the tests failed :
58-64 , 96,98, 105-110
But 3D is refusing to build at all:

osman@osman-desktop:~/HERMES/hermes/hermes3d$ cmake .
-- Will build versions: real;complex
-- Will build with element types: tetra;hex
-- A library with BLAS API found.
-- A library with LAPACK API found.
-- Found Judy: /usr/lib/libJudy.so
-- A library with BLAS API found.
-- Found UMFPACK: /usr/lib/libumfpack.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/osman/HERMES/hermes/hermes3d
osman@osman-desktop:~/HERMES/hermes/hermes3d$ 
osman@osman-desktop:~/HERMES/hermes/hermes3d$ make
[ 24%] Built target hermes3d-cplx-debug
[ 48%] Built target hermes3d-debug
[ 49%] Built target adapt-h1-simple
[ 50%] Built target projection
[ 51%] Built target adapt-smooth
[ 53%] Built target calc-tetra-h1
[ 54%] Built target calc-tetra-h1-dirichlet
[ 55%] Built target calc-tetra-h1-neumann
[ 56%] Built target calc-tetra-h1-newton
[ 59%] Built target calc-hex-h1
[ 60%] Built target calc-hex-h1-dirichlet
[ 62%] Built target calc-hex-h1-neumann
[ 63%] Built target calc-hex-h1-newton
[ 65%] Built target calc-hex-h1-unsym
[ 67%] Built target calc-hex-h1-sys
[ 68%] Built target calc-hex-h1-sys-dirichlet
[ 69%] Built target calc-hex-h1-sys-coupled
[ 70%] Built target calc-hex-hcurl
[ 70%] Building CXX object tests/calc/hex-hcurl-cplx/CMakeFiles/calc-hex-hcurl-cplx.dir/hex-hcurl-cplx.cpp.o
/home/osman/HERMES/hermes/hermes3d/tests/calc/hex-hcurl-cplx/hex-hcurl-cplx.cpp: In function ‘int main(int, char**)’:
/home/osman/HERMES/hermes/hermes3d/tests/calc/hex-hcurl-cplx/hex-hcurl-cplx.cpp:157: error: no matching function for call to ‘LinearProblem::LinearProblem(WeakForm*)’
/home/osman/HERMES/hermes/hermes3d/src/linear_problem.h:34: note: candidates are: LinearProblem::LinearProblem(WeakForm*, Tuple)
/home/osman/HERMES/hermes/hermes3d/src/linear_problem.h:32: note:                 LinearProblem::LinearProblem(const LinearProblem&)
make[2]: *** [tests/calc/hex-hcurl-cplx/CMakeFiles/calc-hex-hcurl-cplx.dir/hex-hcurl-cplx.cpp.o] Error 1
make[1]: *** [tests/calc/hex-hcurl-cplx/CMakeFiles/calc-hex-hcurl-cplx.dir/all] Error 2
make: *** [all] Error 2

Anything I need to do to make it build?
Thanks in advance
-osman

project_global() should take matrix solver as a parameter.

Currently, project_global() uses UMFpack as the only possible solver. However,
projection matrices are SPD and thus we must allow the emplyment of iterative
solvers. Same as we do, for example, in the function solve_linear() or solve_linear_adapt().

Bug in H3D multimesh assembling

This is a bug that Milan fixed in H2D and we still have it in H3D:

  • Corrected a bug where the meshes of u_ext's were not taken into
    account when constructing multimesh assembling stages.
    This is still present in H3D and should be corrected - it e.g.
    caused segfaults in neutronics-heat-conduction-adapt.

euler example fails to compile

In the current master, I am getting:

[ 82%] Building CXX object examples/euler/CMakeFiles/euler.dir/main.cpp.o
In file included from /home/ondrej/repos/hermes/hermes2d/examples/euler/main.cpp:1:
/home/ondrej/repos/hermes/hermes2d/examples/euler/forms.cpp:7:1: warning: "kappa" redefined
In file included from /home/ondrej/repos/hermes/hermes2d/examples/euler/forms.cpp:2,
                 from /home/ondrej/repos/hermes/hermes2d/examples/euler/main.cpp:1:
/home/ondrej/repos/hermes/hermes2d/examples/euler/params.h:8:1: warning: this is the location of the previous definition
/home/ondrej/repos/hermes/hermes2d/examples/euler/main.cpp:15: error: expected unqualified-id before numeric constant
/home/ondrej/repos/hermes/hermes2d/examples/euler/main.cpp:17: error: expected unqualified-id before numeric constant
make[2]: *** [examples/euler/CMakeFiles/euler.dir/main.cpp.o] Error 1
make[1]: *** [examples/euler/CMakeFiles/euler.dir/all] Error 2
make: *** [all] Error 2

This is caused by this code:

double TAU = 1E-4;

double R = 300; // Gas constant

double c_v = 700; // The specific heat capacity at constant volume

double t = 0;

because the forms.cpp define:

#define R H2D_PARAM_R
#define c_v H2D_PARAM_c_v
#define kappa H2D_PARAM_kappa

So it has to be changed a bit.

Merge the "change" branch

We need to merge the "change" branch at Pavel's github.

(1) Examples:
  * 22: Converted but do not work correctly yet.
  * 24; Converted but still do not work yet.
  * 40 - 44: Trilinos. Not converted yet. 

(2) Benchmarks:
  * neutronics-heat-conduction-adapt : Converted but do not work.
  * neutronics-heat-conduction: Converted but do not work correctly yet

(3) Regular examples to be converted or fixed:
  * neutronics-4-group
  * neutronics-4-group-adapt
  * newton-np-timedep-adapt-system
  * ns-bearing
  * ns-timedep-adapt
  * ns-two-phase

The following example do not have tests or the tests do not work

(1) Examples:
  * 24: do not work yet.
  * 40 - 44: Trilinos.

(2) Benchmarks:
  * neutronics-heat-conduction 
  * neutronics-heat-conduction-adapt
  * nist-7

(3) Regular examples:
  * neutronics-4-group
  * newton-np-timedep-adapt-system (not work yet)
  * ns-bearing
  * ns-timedep-adapt
  * ns-two-phase
  * optimal-meshes
  * quantum-billiard
  * richards
  * richards-tracy-adapt

Weird Scalar/BaseView on highly refined meshes

ScalarView does not display correctly piecewise-constant solution on a very refined mesh. BaseView also behaves quite strange when displaying L2 shapes on such a mesh - sometimes it does display the correct function, sometimes it displays nonsense, sometimes it doesn't display anything.

There are some pictures from the example linear-advection-dg-adapt at
http://www.dropbox.com/gallery/538117/4/hermes/hermes2d/examples/linear-advection-dg-adapt?h=5ba6e2
to illustrate this issue. The pictures were created just by pressing the right arrow key in BaseView until the 8th function was displayed, and then going back by pressing the left arrow key (nothing else). Last picture in the gallery is the solution itself.

ubuntu lucid AMD64 hermes2D 5 tests failing out of 128

Here are the outputs from "make test":

96/128 Test  #96: example-neutronics-4-group ....................***Failed   18.66 sec
        Start  97: example-neutronics-4-group-adapt-projection
 97/128 Test  #97: example-neutronics-4-group-adapt-projection ...   Passed  331.91 sec
        Start  98: example-np
 98/128 Test  #98: example-np ....................................***Failed    0.96 sec
...
        Start 107: example-richards-seepage-adapt
107/128 Test #107: example-richards-seepage-adapt ................***Exception: SegFault  0.39 sec
        Start 108: example-ns-bearing
108/128 Test #108: example-ns-bearing ............................   Passed   33.42 sec
        Start 109: example-ns-two-phase
109/128 Test #109: example-ns-two-phase ..........................***Exception: SegFault  3.85 sec
        Start 110: example-ns-timedep-adapt
110/128 Test #110: example-ns-timedep-adapt ......................***Failed   38.08 sec
...

96% tests passed, 5 tests failed out of 128

Label Time Summary:
slow    = 9654.50 sec

Total Test time (real) = 9747.93 sec

The following tests FAILED:
     96 - example-neutronics-4-group (Failed)
     98 - example-np (Failed)
    107 - example-richards-seepage-adapt (SEGFAULT)
    109 - example-ns-two-phase (SEGFAULT)
    110 - example-ns-timedep-adapt (Failed)
Errors while running CTest
make: *** [test] Error 8

Test 96  Log:

96/128 Test: example-neutronics-4-group
Command: "/home/osman/HERMES/hermes/hermes2d/tests/examples/neutronics-4-group/example-neutronics-4-group"
Directory: /home/osman/HERMES/hermes/hermes2d/tests/examples/neutronics-4-group
"example-neutronics-4-group" start time: Sep 08 17:52 EDT
Output:
----------------------------------------------------------

-------------------------------------------------
          This application uses Hermes2D
       Hermes2D is a C++ library for rapid
  development of adaptive FEM and hp-FEM solvers
      developed by the hp-FEM group at UNR
     and distributed under the GPL license.
    For more details visit http://hpfem.org/.
-------------------------------------------------
^[[34m^[[1mI Setting initial conditions.^[[0m
^[[34m^[[1mI ndof = 11380.^[[0m
^[[34m^[[1mI ------------ Power iteration 0:^[[0m
^[[34m^[[1mI ------------ Power iteration 1:^[[0m
^[[34m^[[1mI ------------ Power iteration 2:^[[0m
^[[34m^[[1mI ------------ Power iteration 3:^[[0m
^[[34m^[[1mI ------------ Power iteration 4:^[[0m
^[[34m^[[1mI ------------ Power iteration 5:^[[0m
^[[34m^[[1mI ------------ Power iteration 6:^[[0m
^[[34m^[[1mI ------------ Power iteration 7:^[[0m
^[[34m^[[1mI ------------ Power iteration 8:^[[0m
^[[34m^[[1mI ------------ Power iteration 9:^[[0m
^[[34m^[[1mI ------------ Power iteration 10:^[[0m
^[[34m^[[1mI ------------ Power iteration 11:^[[0m
^[[34m^[[1mI Number of iterations: 12^[[0m
^[[34m^[[1mI Peak flux in group 1: 0.736222, at (1.665339,5.445262)^[[0m
^[[34m^[[1mI Peak flux in group 2: 1.618549, at (1.764661,5.445262)^[[0m
^[[34m^[[1mI Peak flux in group 3: 0.239935, at (1.764661,5.445262)^[[0m
^[[34m^[[1mI Peak flux in group 4: 3.306784, at (1.151700,5.494142)^[[0m
^[[34m^[[1mI Core eigenvalue: 1.152000^[[0m
Failure!

Test time =  18.66 sec
----------------------------------------------------------
Test 98 Log:
98/128 Testing: example-np
98/128 Test: example-np
Command: "/home/osman/HERMES/hermes/hermes2d/tests/examples/newton-np-timedep-adapt-system/example-np"
Directory: /home/osman/HERMES/hermes/hermes2d/tests/examples/newton-np-timedep-adapt-system
"example-np" start time: Sep 08 17:58 EDT
Output:
----------------------------------------------------------

-------------------------------------------------
          This application uses Hermes2D
       Hermes2D is a C++ library for rapid
  development of adaptive FEM and hp-FEM solvers
      developed by the hp-FEM group at UNR
     and distributed under the GPL license.
    For more details visit http://hpfem.org/.
-------------------------------------------------
^[[34m^[[1mI ---- Time step 1:^[[0m
^[[34m^[[1mI Projecting coarse mesh solution to obtain initial vector on new fine mesh.^[[0m
^[[34m^[[1mI Solving on coarse mesh:^[[0m
^[[34m^[[1mI ---- Newton iter 1, ndof 48, res. l2 norm 2.80399e-05^[[0m
^[[34m^[[1mI ---- Adaptivity step 1:^[[0m
^[[34m^[[1mI Projecting coarse mesh solution to obtain initial vector on new fine mesh.^[[0m
^[[34m^[[1mI Solving on fine mesh.^[[0m
^[[34m^[[1mI ---- Newton iter 1, ndof 288, res. l2 norm 2.29489e-05^[[0m
^[[34m^[[1mI Calculating error.^[[0m
^[[34m^[[1mI ndof[0]: 28, ref_ndof[0]: 153, err_est_rel[0]: 2.27376e-06%^[[0m
^[[34m^[[1mI ndof[1]: 20, ref_ndof[1]: 135, err_est_rel[1]: 4.65764e-13%^[[0m
^[[34m^[[1mI ndof: 48, ref_ndof: 288, err_est_rel_total: 5.30635e-07%^[[0m
^[[31mE Mismatched numbers of projected functions and solutions in project_global().^[[0m

Test time =   0.96 sec
----------------------------------------------------------
Test Failed.
"example-np" end time: Sep 08 17:58 EDT
"example-np" time elapsed: 00:00:00
----------------------------------------------------------
Test 107 Log:
107/128 Testing: example-richards-seepage-adapt
107/128 Test: example-richards-seepage-adapt
Command: "/home/osman/HERMES/hermes/hermes2d/tests/examples/richards-seepage-adapt/example-richards-seepage-adapt"
Directory: /home/osman/HERMES/hermes/hermes2d/tests/examples/richards-seepage-adapt
"example-richards-seepage-adapt" start time: Sep 08 18:04 EDT
Output:
----------------------------------------------------------

-------------------------------------------------
          This application uses Hermes2D
       Hermes2D is a C++ library for rapid
  development of adaptive FEM and hp-FEM solvers
      developed by the hp-FEM group at UNR
     and distributed under the GPL license.
    For more details visit http://hpfem.org/.
-------------------------------------------------

Test time =   0.39 sec
----------------------------------------------------------
Test Failed.
"example-richards-seepage-adapt" end time: Sep 08 18:04 EDT
"example-richards-seepage-adapt" time elapsed: 00:00:00
----------------------------------------------------------

Test 109 Log:
109/128 Testing: example-ns-two-phase
109/128 Test: example-ns-two-phase
Command: "/home/osman/HERMES/hermes/hermes2d/tests/examples/ns-two-phase/example-ns-two-phase"
Directory: /home/osman/HERMES/hermes/hermes2d/tests/examples/ns-two-phase
"example-ns-two-phase" start time: Sep 08 18:04 EDT
Output:
----------------------------------------------------------

-------------------------------------------------
          This application uses Hermes2D
       Hermes2D is a C++ library for rapid
  development of adaptive FEM and hp-FEM solvers
      developed by the hp-FEM group at UNR
     and distributed under the GPL license.
    For more details visit http://hpfem.org/.
-------------------------------------------------

Test time =   3.85 sec
----------------------------------------------------------
Test Failed.
"example-ns-two-phase" end time: Sep 08 18:04 EDT
"example-ns-two-phase" time elapsed: 00:00:03
----------------------------------------------------------

Test 110 log:
110/128 Testing: example-ns-timedep-adapt
110/128 Test: example-ns-timedep-adapt
Command: "/home/osman/HERMES/hermes/hermes2d/tests/examples/ns-timedep-adapt/example-ns-timedep-adapt"
Directory: /home/osman/HERMES/hermes/hermes2d/tests/examples/ns-timedep-adapt
"example-ns-timedep-adapt" start time: Sep 08 18:04 EDT
Output:
----------------------------------------------------------

-------------------------------------------------
          This application uses Hermes2D
       Hermes2D is a C++ library for rapid
  development of adaptive FEM and hp-FEM solvers
      developed by the hp-FEM group at UNR
     and distributed under the GPL license.
    For more details visit http://hpfem.org/.
-------------------------------------------------
^[[34m^[[1mI ndof = 2922.^[[0m
^[[34m^[[1mI Setting initial conditions.^[[0m
^[[34m^[[1mI ---- Time step 1:^[[0m
^[[34m^[[1mI Projecting to obtain coefficient vector on coarse mesh.^[[0m
^[[33mW Element #333 is too distorted (iro ~ 12).^[[0m
^[[33mW Element #359 is too distorted (iro ~ 10).^[[0m
^[[33mW Element #385 is too distorted (iro ~ 10).^[[0m
^[[33mW Element #384 is too distorted (iro ~ 10).^[[0m
^[[33mW Element #28 is too distorted (iro ~ 12).^[[0m
^[[33mW Element #31 is too distorted (iro ~ 12).^[[0m
^[[33mW Element #307 is too distorted (iro ~ 10).^[[0m
^[[33mW Element #306 is too distorted (iro ~ 10).^[[0m
^[[33mW Element #280 is too distorted (iro ~ 10).^[[0m
^[[33mW Element #254 is too distorted (iro ~ 12).^[[0m
^[[34m^[[1mI Projecting coarse mesh solution to obtain initial vector on new fine mesh.^[[0m
^[[34m^[[1mI Solving on coarse mesh:^[[0m
^[[34m^[[1mI ---- Newton iter 1, ndof 2922, res. l2 norm 0^[[0m
^[[34m^[[1mI ---- Adaptivity step 1:^[[0m
^[[34m^[[1mI Projecting coarse mesh solution to obtain initial vector on new fine mesh.^[[0m
^[[34m^[[1mI Solving on fine mesh.^[[0m
^[[34m^[[1mI ---- Newton iter 1, ndof 27634, res. l2 norm 0^[[0m
^[[34m^[[1mI Calculating error.^[[0m
^[[34m^[[1mI ndof[0]: 937, ref_ndof[0]: 9101, err_est_rel[0]: -nan%^[[0m
^[[34m^[[1mI ndof[1]: 937, ref_ndof[1]: 9101, err_est_rel[1]: -nan%^[[0m
^[[34m^[[1mI ndof[2]: 1048, ref_ndof[2]: 9432, err_est_rel[2]: -nan%^[[0m
^[[34m^[[1mI ndof: 2922, ref_ndof: 27634, err_est_rel_total: -nan%^[[0m
^[[34m^[[1mI Adapting the coarse mesh.^[[0m
^[[35mD Element (id:398, comp:1) not changed^[[0m
^[[35mD Element (id:399, comp:1) not changed^[[0m
^[[35mD Element (id:400, comp:1) not changed^[[0m
^[[35mD Element (id:401, comp:1) not changed^[[0m
^[[35mD Element (id:402, comp:1) not changed^[[0m
^[[35mD Element (id:403, comp:1) not changed^[[0m
^[[35mD Element (id:404, comp:1) not changed^[[0m
^[[35mD Element (id:405, comp:1) not changed^[[0m
^[[35mD Element (id:19, comp:2) not changed^[[0m
^[[35mD Element (id:24, comp:2) not changed^[[0m
^[[35mD Element (id:28, comp:2) not changed^[[0m
^[[35mD Element (id:31, comp:2) not changed^[[0m
^[[35mD Element (id:36, comp:2) not changed^[[0m
^[[35mD Element (id:43, comp:2) not changed^[[0m
^[[35mD Element (id:52, comp:2) not changed^[[0m
^[[35mD Element (id:53, comp:2) not changed^[[0m
^[[35mD Element (id:56, comp:2) not changed^[[0m
^[[35mD Element (id:57, comp:2) not changed^[[0m
^[[35mD Element (id:60, comp:2) not changed^[[0m
^[[35mD Element (id:61, comp:2) not changed^[[0m
^[[35mD Element (id:64, comp:2) not changed^[[0m
^[[35mD Element (id:65, comp:2) not changed^[[0m
^[[35mD Element (id:66, comp:2) not changed^[[0m
^[[35mD Element (id:67, comp:2) not changed^[[0m
^[[35mD Element (id:367, comp:1) not changed^[[0m
^[[35mD Element (id:369, comp:1) not changed^[[0m
^[[35mD Element (id:371, comp:1) not changed^[[0m
^[[35mD Element (id:373, comp:1) not changed^[[0m
^[[35mD Element (id:375, comp:1) not changed^[[0m
.... a lot of these ..........

^[[35mD Element (id:36, comp:1) not changed^[[0m
^[[35mD Element (id:43, comp:1) not changed^[[0m
^[[35mD Element (id:52, comp:1) not changed^[[0m
^[[35mD Element (id:53, comp:1) not changed^[[0m
^[[33mW None of the elements selected for refinement could be refined. Adaptivity step not successful, returning 'true'.^[[0m
^[[34m^[[1mI Projecting reference solution on new coarse mesh.^[[0m
^[[31mE Mismatched numbers of projected functions and solutions in project_global().^[[0m

Test time =  38.08 sec
----------------------------------------------------------
Test Failed.
"example-ns-timedep-adapt" end time: Sep 08 18:05 EDT
"example-ns-timedep-adapt" time elapsed: 00:00:38

                                                                                                            16066,1       51%

BaseView broken

milan@milan-laptop:~/Dokumenty/FEM/hermes/hermes2d/tutorial/02-space$ ./space 

-------------------------------------------------
          This application uses Hermes2D
       Hermes2D is a C++ library for rapid 
  development of adaptive FEM and hp-FEM solvers
      developed by the hp-FEM group at UNR
     and distributed under the GPL license.
    For more details visit http://hpfem.org/.
-------------------------------------------------
*** glibc detected *** ./space: free(): invalid next size (fast): 0x0000000000f07ef0 ***
======= Backtrace: =========
/lib/libc.so.6[0x7fbabe6622f6]
/lib/libc.so.6(cfree+0x6c)[0x7fbabe666c6c]
/home/milan/Dokumenty/FEM/hermes/hermes2d/src/libhermes2d-real-debug.so(_ZN8BaseView15update_solutionEv+0x192)[0x7fbac08800c4]
/home/milan/Dokumenty/FEM/hermes/hermes2d/src/libhermes2d-real-debug.so(_ZN8BaseView4showEP5Spacedi+0x100)[0x7fbac087fe54]
./space(main+0x11a)[0x40233e]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7fbabe60aabd]
./space[0x402169]
======= Memory map: ========
00400000-00404000 r-xp 00000000 08:05 810794                             /home/milan/Dokumenty/FEM/hermes/hermes2d/tutorial/02-space/space
00603000-00604000 r--p 00003000 08:05 810794                             /home/milan/Dokumenty/FEM/hermes/hermes2d/tutorial/02-space/space
00604000-00605000 rw-p 00004000 08:05 810794                             /home/milan/Dokumenty/FEM/hermes/hermes2d/tutorial/02-space/space
00e98000-01736000 rw-p 00000000 00:00 0                                  [heap]
7fbab4000000-7fbab4021000 rw-p 00000000 00:00 0 
7fbab4021000-7fbab8000000 ---p 00000000 00:00 0 
7fbaba224000-7fbaba244000 rw-s 1ef902000 00:0e 2313                      /dev/dri/card0
7fbaba244000-7fbaba245000 rw-s 1ef8e5000 00:0e 2313                      /dev/dri/card0
7fbaba245000-7fbabaa95000 rw-p 00000000 00:00 0 
7fbabaa95000-7fbabaa9e000 r-xp 00000000 08:05 3957                       /usr/lib/libdrm_intel.so.1.0.0
7fbabaa9e000-7fbabac9d000 ---p 00009000 08:05 3957                       /usr/lib/libdrm_intel.so.1.0.0
7fbabac9d000-7fbabac9e000 r--p 00008000 08:05 3957                       /usr/lib/libdrm_intel.so.1.0.0
7fbabac9e000-7fbabac9f000 rw-p 00009000 08:05 3957                       /usr/lib/libdrm_intel.so.1.0.0
7fbabac9f000-7fbabacc5000 r-xp 00000000 08:05 7524                       /lib/libexpat.so.1.5.2
7fbabacc5000-7fbabaec5000 ---p 00026000 08:05 7524                       /lib/libexpat.so.1.5.2
7fbabaec5000-7fbabaec7000 r--p 00026000 08:05 7524                       /lib/libexpat.so.1.5.2
7fbabaec7000-7fbabaec8000 rw-p 00028000 08:05 7524                       /lib/libexpat.so.1.5.2
7fbabaec8000-7fbabb189000 r-xp 00000000 08:05 134082                     /usr/lib/dri/i965_dri.so
7fbabb189000-7fbabb388000 ---p 002c1000 08:05 134082                     /usr/lib/dri/i965_dri.so
7fbabb388000-7fbabb394000 r--p 002c0000 08:05 134082                     /usr/lib/dri/i965_dri.so
7fbabb394000-7fbabb397000 rw-p 002cc000 08:05 134082                     /usr/lib/dri/i965_dri.so
7fbabb397000-7fbabb3a7000 rw-p 00000000 00:00 0 
7fbabb3a7000-7fbabb3a8000 ---p 00000000 00:00 0 
7fbabb3a8000-7fbabbeab000 rw-p 00000000 00:00 0 
7fbabbeab000-7fbabbeae000 r-xp 00000000 08:05 669                        /lib/libuuid.so.1.3.0
7fbabbeae000-7fbabc0ae000 ---p 00003000 08:05 669                        /lib/libuuid.so.1.3.0
7fbabc0ae000-7fbabc0af000 r--p 00003000 08:05 669                        /lib/libuuid.so.1.3.0
7fbabc0af000-7fbabc0b0000 rw-p 00004000 08:05 669                        /lib/libuuid.so.1.3.0
7fbabc0b0000-7fbabc0c7000 r-xp 00000000 08:05 3683                       /usr/lib/libICE.so.6.3.0
7fbabc0c7000-7fbabc2c6000 ---p 00017000 08:05 3683                       /usr/lib/libICE.so.6.3.0
7fbabc2c6000-7fbabc2c7000 r--p 00016000 08:05 3683                       /usr/lib/libICE.so.6.3.0
7fbabc2c7000-7fbabc2c8000 rw-p 00017000 08:05 3683                       /usr/lib/libICE.so.6.3.0
7fbabc2c8000-7fbabc2cb000 rw-p 00000000 00:00 0 
7fbabc2cb000-7fbabc2d0000 r-xp 00000000 08:05 3731                       /usr/lib/libXdmcp.so.6.0.0
7fbabc2d0000-7fbabc4cf000 ---p 00005000 08:05 3731                       /usr/lib/libXdmcp.so.6.0.0
7fbabc4cf000-7fbabc4d0000 rw-p 00004000 08:05 3731                       /usr/lib/libXdmcp.so.6.0.0
7fbabc4d0000-7fbabc4d8000 r-xp 00000000 08:05 3712                       /usr/lib/libSM.so.6.0.0
7fbabc4d8000-7fbabc6d7000 ---p 00008000 08:05 3712                       /usr/lib/libSM.so.6.0.0
7fbabc6d7000-7fbabc6d8000 r--p 00007000 08:05 3712                       /usr/lib/libSM.so.6.0.0
7fbabc6d8000-7fbabc6d9000 rw-p 00008000 08:05 3712                       /usr/lib/libSM.so.6.0.0
7fbabc6d9000-7fbabc738000 r-xp 00000000 08:05 3759                       /usr/lib/libXt.so.6.0.0
7fbabc738000-7fbabc938000 ---p 0005f000 08:05 3759                       /usr/lib/libXt.so.6.0.0
7fbabc938000-7fbabc939000 r--p 0005f000 08:05 3759                       /usr/lib/libXt.so.6.0.0
7fbabc939000-7fbabc93e000 rw-p 00060000 08:05 3759                       /usr/lib/libXt.so.6.0.0
7fbabc93e000-7fbabc93f000 rw-p 00000000 00:00 0 
7fbabc93f000-7fbabc95a000 r-xp 00000000 08:05 4751                       /usr/lib/libxcb.so.1.1.0
7fbabc95a000-7fbabcb59000 ---p 0001b000 08:05 4751                       /usr/lib/libxcb.so.1.1.0
7fbabcb59000-7fbabcb5a000 r--p 0001a000 08:05 4751                       /usr/lib/libxcb.so.1.1.0
7fbabcb5a000-7fbabcb5b000 rw-p 0001b000 08:05 4751                       /usr/lib/libxcb.so.1.1.0
7fbabcb5b000-7fbabcb5d000 r-xp 00000000 08:05 3720                       /usr/lib/libXau.so.6.0.0
7fbabcb5d000-7fbabcd5c000 ---p 00002000 08:05 3720                       /usr/lib/libXau.so.6.0.0
7fbabcd5c000-7fbabcd5d000 r--p 00001000 08:05 3720                       /usr/lib/libXau.so.6.0.0
7fbabcd5d000-7fbabcd5e000 rw-p 00002000 08:05 3720                       /usr/lib/libXau.so.6.0.0
7fbabcd5e000-7fbabcd68000 r-xp 00000000 08:05 3955                       /usr/lib/libdrm.so.2.4.0
7fbabcd68000-7fbabcf67000 ---p 0000a000 08:05 3955                       /usr/lib/libdrm.so.2.4.0
7fbabcf67000-7fbabcf68000 r--p 00009000 08:05 3955                       /usr/lib/libdrm.so.2.4.0
7fbabcf68000-7fbabcf69000 rw-p 0000a000 08:05 3955                       /usr/lib/libdrm.so.2.4.0
7fbabcf69000-7fbabcf6e000 r-xp 00000000 08:05 3735                       /usr/lib/libXfixes.so.3.1.0
7fbabcf6e000-7fbabd16d000 ---p 00005000 08:05 3735                       /usr/lib/libXfixes.so.3.1.0
7fbabd16d000-7fbabd16e000 r--p 00004000 08:05 3735                       /usr/lib/libXfixes.so.3.1.0
7fbabd16e000-7fbabd16f000 rw-p 00005000 08:05 3735                       /usr/lib/libXfixes.so.3.1.0Aborted

Unification of matricies and solvers.

Use of matrices, vectors and solvers needs to be unified across all Hermeses. If current Hermes3D structures are going to be chosen as a basis for the unification, there are several things to note:

  • Method
    virtual void add(int m, int n, scalar **mat, int *rows, int *cols);
    (called add_block in Hermes2D) should be moved to the basic class Matrix as in H2D. This will lower the amount of duplicate code, since only the single-element "add" functions really differ across the various matrix classes.

  • PardisoMatrix and UMFPackMatrix, respectively, should be renamed to CSRMatrix and CSCMatrix, respectively, since this is a standard format to store sparse matrices and may be used by other solvers that might be implemented in future.

    Moreover, since the only difference between these two matrix classes is only in the "add" method, a common superclass CSMatrix (or CompressedSparseMatrix) may be defined for them (itself being derived from SparseMatrix), yet again to minimize code duplication.

  • There should be a possibility to interchange storage formats of already created matrices, e.g. to allow dynamically changing available direct and iterative solvers based on size of the problem.

  • There should be a possibility to assemble the matrix using the simple coordinate format because of its efficiency to small/moderate-size problems.

Please feel free to add anything else you find important.

Write Linearizer for H3D

Linearizer is used in H2D to approximate adaptively a higher-order
FEM solution using piecewise-linear functions. This is extremely useful for
the visualization of higher-order FEM solutions. In H3D we do not have
this yet, and thus the visualization of higher-order FEM solutions is very
crude. For example, a quadratic brick is only split into eight linear parts.
We need to implement it as soon as possible.

H3D throws error when used with a tetrahedral mesh

This is the stacktrace of example elasticity-cubit-tet.

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc

Abort caught. Printing stacktrace:

Traceback (most recent call last):
File unknown, in _start()
File unknown, in _libc_start_main()
File "/home/pavel/hermes/hermes3d/examples/elasticity-cubit-tet/main.cpp", line 79, in main()
H1Space xdisp(&mesh, bc_types_x, essential_bc_values, Ord3(P_INIT));
File "/home/pavel/hermes/hermes3d/src/space/h1.cpp", line 60, in H1Space()
this->assign_dofs();
File "/home/pavel/hermes/hermes3d/src/space/space.cpp", line 2213, in Space::assign_dofs(int, int)
update_constraints();
File "/home/pavel/hermes/hermes3d/src/space/space.cpp", line 2322, in Space::update_constraints()
uc_dep(eid);
File "/home/pavel/hermes/hermes3d/src/space/space.cpp", line 2289, in Space::uc_dep(unsigned int)
uc_element(eid);
File "/home/pavel/hermes/hermes3d/src/space/space.cpp", line 2152, in Space::uc_element(unsigned int)
calc_edge_boundary_projection(e, edge[iedge]);
File "/home/pavel/hermes/hermes3d/src/space/h1.cpp", line 221, in H1Space::calc_edge_boundary_projection(Element
, int)
double _proj_mat = new_matrix(num_fns, num_fns);
File "/home/pavel/hermes/hermes3d/src/../../hermes_common/solver/../matrix.h", line 33, in double
* new_matrix(int, int)
T *vec = (T *) new char[sizeof(T ) * m + sizeof(T) * m * n];
File unknown, in operator new[](unsigned int)
File unknown, in operator new(unsigned int)
File unknown, in __cxa_throw()
File unknown, in std::terminate()
File unknown, in std::set_unexpected(void (
)())
File unknown, in __gnu_cxx::__verbose_terminate_handler()
File unknown, in abort()
File unknown, in raise()
File unknown, address: 0xffffffffffffe422
File unknown, address: 0xffffffffffffe400
File "/home/pavel/hermes/hermes_common/Teuchos_stacktrace.cpp", line 457, in (anonymous namespace)::loc_abort_callback_print_stack(int)
Teuchos::show_stacktrace();
File "/home/pavel/hermes/hermes_common/Teuchos_stacktrace.cpp", line 486, in Teuchos::show_stacktrace()
std::cout << Teuchos::get_stacktrace();
File "/home/pavel/hermes/hermes_common/Teuchos_stacktrace.cpp", line 474, in Teuchos::get_stacktrace()
STACKTRACE_ARRAY_SIZE);

zoom-to-fit test fails to build with Trilinos

When trilinos is enabled, this test fails to build:

[ 72%] Building CXX object tests/view/zoom-to-fit/CMakeFiles/zoom-to-fit.dir/main.cpp.o
In file included from /home/ondrej/repos/hermes2d/tests/view/zoom-to-fit/main.cpp:2:
/home/ondrej/repos/hermes2d/src/views/view_support.h:61: error: ‘view’ was not declared in this scope
/home/ondrej/repos/hermes2d/src/views/view_support.h:61: error: expected primary-expression before ‘int’
/home/ondrej/repos/hermes2d/src/views/view_support.h:61: error: expected primary-expression before ‘int’
/home/ondrej/repos/hermes2d/src/views/view_support.h:61: error: expected primary-expression before ‘int’
/home/ondrej/repos/hermes2d/src/views/view_support.h:61: error: expected primary-expression before ‘int’
/home/ondrej/repos/hermes2d/src/views/view_support.h:61: error: expected primary-expression before ‘const’
/home/ondrej/repos/hermes2d/src/views/view_support.h:61: error: initializer expression list treated as compound expression

The error is mysterious to me. The view_support.h header file seems to be fine, as it compiles with some other cpp files. Only this test fails to build, so I assume that something is wrong with it. I have disabled it for now.

fix update of spilka

currently, the git update-server-info is apparently not run at spilka, so that then "git clone" works incorrectly. This needs to be investigated and fixed.

Allow mayavi/matplotlib based plotting inside the C++

We need to subclass the ScalarView and use mayavi to do all the plotting. The same for MeshView and other things.

Then we can save things to images, offline, over ssh, and there will be no freeglut problems. It will be an optional way for the users, so it will live alongside the current plotting machinery.

It will build with femhub for example.

Comments
certik July 24, 2010 | link | edit | delete
Pavel: For starters we should enable saving Solutions and Spaces, because this
is all the ScalarView and MeshView need. Then you can fetch the saved data
from anywhere and visualize them on your local computer.

Actually we already have (some) Solution::save(),
Solution::load(), and Mesh::save() and Mesh::load(). So
we need to implement Space::save() and Space::load().
We should do this with Michal soon since we need it
urgently.

Implement VTK output in H2D

H2D should have the same VTK output functionality as H3D. The Views
we have in H2D and not in H3D will become optional.

Bring back assembling into precalculated sparse structure

Currently Hermes2D only can assemble into the CooMatrix. This is very fast, but extremely memory consuming. On the other hand, we know the sparse structure of the matrix, and then assembling takes much less memory. We have to have both options in Hermes, so that the user can choose.

certik July 27, 2010 | link | edit | delete
Also we should make some tests to see how much more memory you need for CooMatrix after assembly, and how much less memory you need for the CSRMatrix that results after converting it. So that we have some numbers. Is it 2x less, 10x less, 100x less? I have no clue.

solin July 27, 2010 | link | edit | delete
People say that CooMatrix can easily take 20x more.

certik July 27, 2010 | link | edit | delete
20x would be quite a lot. Let's see.

Visualize distorted geometry in H3D

In linear elasticity it is useful to see how the domain
would actually deform based on computed displacements.
This is done in such a way that displacements are
multiplied with a sufficiently large scaling factor (say
104) and added to all mesh vertices during solution
output. We have this functionality in H2D and in 3D
it will be really cool.

h3d examples fail to build

ondrej@crow:~/repos/hermes/hermes3d/examples(master)$ make
[ 84%] Built target hermes3d-debug
[ 88%] Building CXX object examples/elastostatics/CMakeFiles/elastostatics.dir/main.cpp.o
/home/ondrej/repos/hermes/hermes3d/examples/elastostatics/main.cpp: In function ‘int main(int, char**)’:
/home/ondrej/repos/hermes/hermes3d/examples/elastostatics/main.cpp:143: error: no matching function for call to ‘LinearProblem::LinearProblem(WeakForm*)’
/home/ondrej/repos/hermes/hermes3d/src/linear_problem.h:34: note: candidates are: LinearProblem::LinearProblem(WeakForm*, Tuple)
/home/ondrej/repos/hermes/hermes3d/src/linear_problem.h:32: note:                 LinearProblem::LinearProblem(const LinearProblem&)
make[2]: *** [examples/elastostatics/CMakeFiles/elastostatics.dir/main.cpp.o] Error 1
make[1]: *** [examples/elastostatics/CMakeFiles/elastostatics.dir/all] Error 2
make: *** [all] Error 2

Unfortunately this was there from the beginning of this hermes repository, so it's hard to figure out which patch broke it.

warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘long unsigned int’

after this patch was pushed in:

http://github.com/hpfem/hermes/commit/9cbd5612d3c6b1b2aae634d21a93c068322ed447

I am getting warnings in hermes_common:

/home/ondrej/repos/hermes/hermes2d/hermes_common/matrix.cpp: In member
function ‘virtual void CooMatrix::print()’:
/home/ondrej/repos/hermes/hermes2d/hermes_common/matrix.cpp:477:
warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has
type ‘long unsigned int’
/home/ondrej/repos/hermes/hermes2d/hermes_common/matrix.cpp:477:
warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has
type ‘long unsigned int’
/home/ondrej/repos/hermes/hermes2d/hermes_common/matrix.cpp:490:
warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has
type ‘long unsigned int’
/home/ondrej/repos/hermes/hermes2d/hermes_common/matrix.cpp:490:
warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has
type ‘long unsigned int’

if I revert that patch, I am not getting any warnings. For Pavel, it's exactly the opposite.

I suspect it's 32bit vs 64bit issue and it has to be resolved in a way, so that it works for everybody.

Implement Fekete points

Since phaml uses triangles, the first step is to have a C++
function, that (quickly) retrieves the fekete points on a reference
triangle.

Steps to do:

  1. Find how fekete points are defined for triangles. Search this list
    (Pavel mentioned something already), find the definitions, and so on.

  2. I think that phaml doesn't use very high order, I think 10 or 20,
    so it's ok to get the points up to 10 or 20. If you cannot find exact
    numbers, I think there are some approximate fekete points available
    somewhere

  3. create a C++ function that retrieves all (x, y) pairs of fekete
    points on a triangle for a given order

  4. create a C++ function that transforms them to a physical triangle
    from the reference domain

  5. write a function, that uses Lagrange interpolation (?) or some
    other method to evaluate the solution at any point in the physical
    triangle, given the values in fekete poitns

Once we have 4) and 5), we can retrieve the solution from phaml and
plot it in femhub.


Pavel's comments:

  1. Find how fekete points are defined for triangles. Search this list
    (Pavel mentioned something already), find the definitions, and so on.

See the end of the attached paper. We will need to transform
them to our reference triangle where our shape functions are defined,
see below.

  1. I think that phaml doesn't use very high order, I think 10 or 20,
    so it's ok to get the points up to 10 or 20. If you cannot find exact
    numbers, I think there are some approximate fekete points available
    somewhere

  2. create a C++ function that retrieves all (x, y) pairs of fekete
    points on a triangle for a given order

  3. create a C++ function that transforms them to a physical triangle
    from the reference domain

This we covered in the numerical methods II course.

  1. write a function, that uses Lagrange interpolation (?) or some
    other method to evaluate the solution at any point in the physical
    triangle, given the values in fekete poitns

The interpolation polynomials on Fekete points are not easy to construct
explicitly. Therefore I would just take some good basis, for example
the same we use in H2D on triangles, express the unknown polynomial
as a linear combination of these basis functions with unknown
coefficients, and calculate these coefficients from the fact that
we know the function values at the Fekete points. This yields a small
matrix problem per element that can be solved quickly. 

Thanks for working on this!

Pavel

Convert tabs to spaces

We should always prefer spaces over tabs. There are plenty of tabs in H3D, for instance, that we should convert.

File src/h3dconfig.h in H3D is incompatible with H2D and H1D

We need to see whether this file is needed in H3D and
remove it if possible. The same file is temporarily in H2D
as well (it was copied because it was needed by matrix
solvers that have been imported from H3D to H2D), and
we should delete it as well.

Enable real solvers for complex problems

Each complex matrix problem CZ = F where C = Ai + B can be transformed into a (twice as large) real problem whose matrix is
|A -B}
{B A|
This is necessary for problems where part is real and part complex, such
as induction heating by time-harmonic currents etc.

move hermes_common one level up

Also remove copy_common and make sure things build. It should be enough to prepend .. into all paths referencing things from hermes_common.

print nice stacktrace like in Python

I would like to get Python like stacktraces (filenames, line numbers, plus the line itself) in the Python format, whenever something happens in C++, like an exception is being raised, or segfault happens.

Comments
certik July 24, 2010 | link | edit | delete
I posted a solution here:

http://github.com/certik/cpp_stacktrace

$ ./compile
$ ./b 
Obtained 6 stack frames.
backtrace-symbols.c:371 show_backtrace()
b.c:7   g()
b.c:12  f()
b.c:18  main()
libc-start.c:252    __libc_start_main()
start.S:116 _start()

It prints filenames and line numbers, as well as the name of the function. So that's all that is needed, but unfortunately it only compiles using gcc, not g++ so far. Hopefully it will not be difficult to fix.

certik July 25, 2010 | link | edit | delete
I fixed it, here is an example from hermes:

Traceback (most recent call last):
  File "/build/buildd/eglibc-2.10.1/csu/../sysdeps/x86_64/elf/start.S", line 113, in _start
  File "/build/buildd/eglibc-2.10.1/csu/libc-start.c", line 220, in __libc_start_main
  File "/home/ondrej/repos/hermes2d/benchmarks/bessel/main.cpp", line 140, in main
        rs.assemble();
  File "/home/ondrej/repos/hermes2d/src/refsystem.cpp", line 178, in RefSystem::assemble(bool)
      if (this->linear == true) LinSystem::assemble(rhsonly);
  File "/home/ondrej/repos/hermes2d/src/linsystem.cpp", line 618, in LinSystem::assemble(bool)
                  bi = eval_form(jfv, NULL, fu, fv, &refmap[n], &refmap[m]) * an->coef[j] * am->coef[i];
  File "/home/ondrej/repos/hermes2d/src/linsystem.cpp", line 837, in LinSystem::eval_form(WeakForm::JacFormVol*, Solution**, PrecalcShapeset*, PrecalcShapeset*, RefMap*, RefMap*)
      show_backtrace();
  File "/home/ondrej/repos/cpp_stacktrace/backtrace-symbols.c", line 420, in show_backtrace()
      size = backtrace (array, 10);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.