Compiler and gcc version

On my cluster I only have access to GCC 7.3 or 8.2.

Compiling ngsolve with gcc 8.2 seems to be unsupported. Compiling ngsolve with 7.3 gives me the following errors

[ 30%] Building CXX object fem/CMakeFiles/ngfem.dir/diffop_grad.cpp.o
/home/janwdp/ngsuite/ngsolve-src/fem/diffop_grad.cpp: In static member function ‘static std::shared_ptr<ngfem::CoefficientFunction> ngfem::DiffOpGradientBoundary<D, FEL>::DiffShape(std::shared_ptr<ngfem::CoefficientFunction>, std::shared_ptr<ngfem::CoefficientFunction>) [with int D = 2; FEL = ngfem::ScalarFiniteElement<1>]’:
/home/janwdp/ngsuite/ngsolve-src/fem/diffop_grad.cpp:24:23: internal compiler error: in assign_temp, at function.c:968
     n -> SetDimensions( Array<int> ( { dim, 1 } ) );
     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x91e471 assign_temp(tree_node*, int, int)
	../../gcc/function.c:968
0x7e0a6f initialize_argument_information
	../../gcc/calls.c:1825
0x7e0a6f expand_call(tree_node*, rtx_def*, int)
	../../gcc/calls.c:3278
0x8d3abd expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool)
	../../gcc/expr.c:10889
0x7f0226 expand_expr
	../../gcc/expr.h:276
0x7f0226 expand_call_stmt
	../../gcc/cfgexpand.c:2658
0x7f0226 expand_gimple_stmt_1
	../../gcc/cfgexpand.c:3571
0x7f0226 expand_gimple_stmt
	../../gcc/cfgexpand.c:3737
0x7f110f expand_gimple_basic_block
	../../gcc/cfgexpand.c:5744
0x7f6276 execute
	../../gcc/cfgexpand.c:6357
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
make[5]: *** [fem/CMakeFiles/ngfem.dir/diffop_grad.cpp.o] Error 1
make[4]: *** [fem/CMakeFiles/ngfem.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [dependencies/Stamp/ngsolve/ngsolve-build] Error 2
make[1]: *** [CMakeFiles/ngsolve.dir/all] Error 2
make: *** [all] Error 2

Any advice on how to build ngsolve using either of these gcc versions?

Hi,
gcc 8.2 has a critical bug affecting NGSolve, and it seems like gcc 7.3 also…
You can try to change this line of code to

Array<int> a({dim, 1});
n -> SetDimensions(a)

and see if it compiles.
If not, you can either ask your admins to update to recent compiler versions or compile a recent version yourself and use it.

Best
Christopher