fixes for SplineSurface lifetime, pytest
Sind ein paar fixes für die lifetimes von splinesurfaces. Die CSGeometry speichert jetzt die hinzugefügten SplineSurfaces (damit die shared_ptr nicht sterben)
Ich verwende std::vector für dynamische Arrays von shared_ptrs, da die Netgen Arrays nur mit trivialen Datentypen arbeiten können. (Könnte man evtl die NGSolve Arrays auch in Netgen verfügbar machen)
Der Rest der Änderungen sollte nur meine SplineSurfaces betreffen.
Habe auch einen pytest hinzugefügt. Habe dafür mit Matthias die tests auch für Netgen aktiviert.
Da ich das öfters testen musste habe ich die commits jetzt gesquashed
Ich hoffe das passt so.
LG
Christopher
See merge request !35
The definition of std::max uses references for parameters, which leads
to unnecessary storing of constants on the stack. If the stack is
overwritten this leads to wrong results.
max2() works around this using call-by-value.
When passing '-internaltcl' to netgen, it will evaluate a preprocessed
tcl string instead of loading ng.tcl.
The string is stored in the file onetcl.cpp, which is generated by onetcl.py
Use tolerance in GetElementOfPoint when using a search tree
I'm getting artifacts at domain edges (see attached), because no tolerance is used when calling `elementsearchtree->GetIntersecting()` inside `GetElementOfPoint`.
![searchtree](/uploads/5aa10da74cac7bef9e134756ea897e49/searchtree.png)
See merge request !29
Force rebuild of Netgen subproject when building the Superbuild
CMake is using stamp files to check if the external projects are out
of date. There is an option 'BUILD_ALWAYS 1' of ExternalProject_Add,
but it is not available prior to CMake 3.1.
To work around it, this commit solves two problems at once:
- Add a new step 'check_submodules' between configure and build
to check if all submodules are up to date. This step has the option
'ALWAYS 1', which means it is always considered outdated.
- Since 'build' depends on the above step, it will always be started
See merge request !30
CMake is using stamp files to check if the external projects are out
of date. There is an option 'BUILD_ALWAYS 1' of ExternalProject_Add,
but it is not available prior to CMake 3.1.
To work around it, this commit solves two problems at once:
- Add a new step 'check_submodules' between configure and build
to check if all submodules are up to date. This step has the option
'ALWAYS 1', which means it is always considered outdated.
- Since 'build' depends on the above step, it will always be started