Closed iliTheFallen closed 3 months ago
Could you provide the output of:
import gmsh
gmsh.initialize()
membrane = gmsh.model.occ.addDisk(0, 0, 0, 1, 1)
gmsh.model.occ.synchronize()
gdim = 2
gmsh.model.addPhysicalGroup(gdim, [membrane], 1)
gmsh.option.setNumber("Mesh.CharacteristicLengthMin", 0.05)
gmsh.option.setNumber("Mesh.CharacteristicLengthMax", 0.05)
gmsh.model.mesh.generate(gdim)
from dolfinx.fem.petsc import LinearProblem
from dolfinx.io import gmshio
from mpi4py import MPI
import dolfinx
print(dolfinx.common.git_commit_hash)
gmsh_model_rank = 0
mesh_comm = MPI.COMM_WORLD
domain, cell_markers, facet_markers = gmshio.model_to_mesh(
gmsh.model, mesh_comm, gmsh_model_rank, gdim=gdim
)
from dolfinx import fem
V = fem.functionspace(domain, ("Lagrange", 1))
import ufl
from dolfinx import default_scalar_type
x = ufl.SpatialCoordinate(domain)
beta = fem.Constant(domain, default_scalar_type(12))
R0 = fem.Constant(domain, default_scalar_type(0.3))
p = 4 * ufl.exp(-(beta**2) * (x[0] ** 2 + (x[1] - R0) ** 2))
import numpy as np
def on_boundary(x):
return np.isclose(np.sqrt(x[0] ** 2 + x[1] ** 2), 1)
boundary_dofs = fem.locate_dofs_geometrical(V, on_boundary)
bc = fem.dirichletbc(default_scalar_type(0), boundary_dofs, V)
u = ufl.TrialFunction(V)
v = ufl.TestFunction(V)
a = ufl.dot(ufl.grad(u), ufl.grad(v)) * ufl.dx
L = p * v * ufl.dx
problem = LinearProblem(
a, L, bcs=[bc], petsc_options={"ksp_type": "preonly", "pc_type": "lu"}
)
uh = problem.solve()
Q = fem.functionspace(domain, ("Lagrange", 5))
expr = fem.Expression(p, Q.element.interpolation_points())
pressure = fem.Function(Q)
pressure.interpolate(expr)
Hello @jorgensd!
I ran it and here is the output:
Info : Meshing 1D...
Info : Meshing curve 1 (Ellipse)
Info : Done meshing 1D (Wall 0.000475142s, CPU 0.000915s)
Info : Meshing 2D...
Info : Meshing surface 1 (Plane, Frontal-Delaunay)
Info : Done meshing 2D (Wall 0.141706s, CPU 0.137624s)
Info : 1550 nodes 3099 elements
ad7bf8b551a6795a19aaaec058ecba438d55b279
In file included from libffcx_forms_4496a4745a0030841e01354f4d867a8c1577d00c.c:586:0:
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:287:23](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=286): error: expected ‘;’, ‘,’ or ‘)’ before ‘A’
float* restrict A, const float* restrict w,
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:297:24](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=296): error: expected ‘;’, ‘,’ or ‘)’ before ‘A’
double* restrict A, const double* restrict w,
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:307:32](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=306): error: expected ‘;’, ‘,’ or ‘)’ before ‘A’
float _Complex* restrict A, const float _Complex* restrict w,
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:317:33](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=316): error: expected ‘;’, ‘,’ or ‘)’ before ‘A’
double _Complex* restrict A, const double _Complex* restrict w,
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:325:5](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=324): error: unknown type name ‘ufcx_tabulate_tensor_float32’
ufcx_tabulate_tensor_float32* tabulate_tensor_float32;
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:326:5](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=325): error: unknown type name ‘ufcx_tabulate_tensor_float64’
ufcx_tabulate_tensor_float64* tabulate_tensor_float64;
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:327:5](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=326): error: unknown type name ‘ufcx_tabulate_tensor_complex64’
ufcx_tabulate_tensor_complex64* tabulate_tensor_complex64;
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:328:5](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=327): error: unknown type name ‘ufcx_tabulate_tensor_complex128’
ufcx_tabulate_tensor_complex128* tabulate_tensor_complex128;
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:344:5](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=343): error: unknown type name ‘ufcx_tabulate_tensor_float32’
ufcx_tabulate_tensor_float32* tabulate_tensor_float32;
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:345:5](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=344): error: unknown type name ‘ufcx_tabulate_tensor_float64’
ufcx_tabulate_tensor_float64* tabulate_tensor_float64;
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:346:5](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=345): error: unknown type name ‘ufcx_tabulate_tensor_complex64’
ufcx_tabulate_tensor_complex64* tabulate_tensor_complex64;
^
[/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h:347:5](http://localhost:52225/truba/home/igurcan/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/ufcx.h#line=346): error: unknown type name ‘ufcx_tabulate_tensor_complex128’
ufcx_tabulate_tensor_complex128* tabulate_tensor_complex128;
^
libffcx_forms_4496a4745a0030841e01354f4d867a8c1577d00c.c:775:89: error: expected ‘;’, ‘,’ or ‘)’ before ‘A’
void tabulate_tensor_integral_a2e12337731339d4d0174b7c4959a0fdc321393a(double* restrict A,
^
libffcx_forms_4496a4745a0030841e01354f4d867a8c1577d00c.c:891:30: error: ‘tabulate_tensor_integral_a2e12337731339d4d0174b7c4959a0fdc321393a’ undeclared here (not in a function)
.tabulate_tensor_float64 = tabulate_tensor_integral_a2e12337731339d4d0174b7c4959a0fdc321393a,
^
libffcx_forms_4496a4745a0030841e01354f4d867a8c1577d00c.c: In function ‘_cffi_checkfld__ufcx_integral’:
libffcx_forms_4496a4745a0030841e01354f4d867a8c1577d00c.c:1225:104: warning: initialization from incompatible pointer type [enabled by default]
{ void(* *tmp)(float *, float const *, float const *, float const *, int const *, uint8_t const *) = &p->tabulate_tensor_float32; (void)tmp; }
^
libffcx_forms_4496a4745a0030841e01354f4d867a8c1577d00c.c:1226:108: warning: initialization from incompatible pointer type [enabled by default]
{ void(* *tmp)(double *, double const *, double const *, double const *, int const *, uint8_t const *) = &p->tabulate_tensor_float64; (void)tmp; }
^
libffcx_forms_4496a4745a0030841e01354f4d867a8c1577d00c.c:1227:131: warning: initialization from incompatible pointer type [enabled by default]
{ void(* *tmp)(float _Complex *, float _Complex const *, float _Complex const *, float const *, int const *, uint8_t const *) = &p->tabulate_tensor_complex64; (void)tmp; }
^
libffcx_forms_4496a4745a0030841e01354f4d867a8c1577d00c.c:1228:135: warning: initialization from incompatible pointer type [enabled by default]
{ void(* *tmp)(double _Complex *, double _Complex const *, double _Complex const *, double const *, int const *, uint8_t const *) = &p->tabulate_tensor_complex128; (void)tmp; }
^
---------------------------------------------------------------------------
DistutilsExecError Traceback (most recent call last)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py:188](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py#line=187), in UnixCCompiler._compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts)
187 try:
--> 188 self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
189 except DistutilsExecError as msg:
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py:1041](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py#line=1040), in CCompiler.spawn(self, cmd, **kwargs)
1040 def spawn(self, cmd, **kwargs):
-> 1041 spawn(cmd, dry_run=self.dry_run, **kwargs)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/spawn.py:68](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/spawn.py#line=67), in spawn(cmd, search_path, verbose, dry_run, env)
67 cmd = cmd[0]
---> 68 raise DistutilsExecError(f"command {cmd!r} failed with exit code {exitcode}")
DistutilsExecError: command '[/usr/bin/gcc](http://localhost:52225/usr/bin/gcc)' failed with exit code 1
During handling of the above exception, another exception occurred:
CompileError Traceback (most recent call last)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/ffiplatform.py:48](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/ffiplatform.py#line=47), in _build(tmpdir, ext, compiler_verbose, debug)
47 set_verbosity(compiler_verbose)
---> 48 dist.run_command('build_ext')
49 cmd_obj = dist.get_command_obj('build_ext')
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/dist.py:968](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/dist.py#line=967), in Distribution.run_command(self, command)
965 # Postpone defaults until all explicit configuration is considered
966 # (setup() args, config files, command line and plugins)
--> 968 super().run_command(command)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/dist.py:988](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/dist.py#line=987), in Distribution.run_command(self, command)
987 cmd_obj.ensure_finalized()
--> 988 cmd_obj.run()
989 self.have_run[command] = 1
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/command/build_ext.py:91](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/command/build_ext.py#line=90), in build_ext.run(self)
90 old_inplace, self.inplace = self.inplace, 0
---> 91 _build_ext.run(self)
92 self.inplace = old_inplace
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py:359](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py#line=358), in build_ext.run(self)
358 # Now actually compile and link everything.
--> 359 self.build_extensions()
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py:479](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py#line=478), in build_ext.build_extensions(self)
478 else:
--> 479 self._build_extensions_serial()
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py:505](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py#line=504), in build_ext._build_extensions_serial(self)
504 with self._filter_build_errors(ext):
--> 505 self.build_extension(ext)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/command/build_ext.py:252](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/command/build_ext.py#line=251), in build_ext.build_extension(self, ext)
251 self.compiler = self.shlib_compiler
--> 252 _build_ext.build_extension(self, ext)
253 if ext._needs_stub:
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py:560](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py#line=559), in build_ext.build_extension(self, ext)
558 macros.append((undef,))
--> 560 objects = self.compiler.compile(
561 sources,
562 output_dir=self.build_temp,
563 macros=macros,
564 include_dirs=ext.include_dirs,
565 debug=self.debug,
566 extra_postargs=extra_args,
567 depends=ext.depends,
568 )
570 # XXX outdated variable, kept here in case third-part code
571 # needs it.
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py:600](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/ccompiler.py#line=599), in CCompiler.compile(self, sources, output_dir, macros, include_dirs, debug, extra_preargs, extra_postargs, depends)
599 continue
--> 600 self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
602 # Return *all* object filenames, not just the ones we just built.
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py:190](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py#line=189), in UnixCCompiler._compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts)
189 except DistutilsExecError as msg:
--> 190 raise CompileError(msg)
CompileError: command '[/usr/bin/gcc](http://localhost:52225/usr/bin/gcc)' failed with exit code 1
During handling of the above exception, another exception occurred:
VerificationError Traceback (most recent call last)
Cell In[1], line 57
55 a = ufl.dot(ufl.grad(u), ufl.grad(v)) * ufl.dx
56 L = p * v * ufl.dx
---> 57 problem = LinearProblem(
58 a, L, bcs=[bc], petsc_options={"ksp_type": "preonly", "pc_type": "lu"}
59 )
60 uh = problem.solve()
61 Q = fem.functionspace(domain, ("Lagrange", 5))
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/fem/petsc.py:762](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/fem/petsc.py#line=761), in LinearProblem.__init__(self, a, L, bcs, u, petsc_options, form_compiler_options, jit_options)
724 def __init__(
725 self,
726 a: ufl.Form,
(...)
732 jit_options: typing.Optional[dict] = None,
733 ):
734 """Initialize solver for a linear variational problem.
735
736 Args:
(...)
760 "mumps"})
761 """
--> 762 self._a = _create_form(
763 a, form_compiler_options=form_compiler_options, jit_options=jit_options
764 )
765 self._A = create_matrix(self._a)
766 self._L = _create_form(
767 L, form_compiler_options=form_compiler_options, jit_options=jit_options
768 )
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/fem/forms.py:249](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/fem/forms.py#line=248), in form(form, dtype, form_compiler_options, jit_options, entity_maps)
246 return list(map(lambda sub_form: _create_form(sub_form), form))
247 return form
--> 249 return _create_form(form)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/fem/forms.py:244](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/fem/forms.py#line=243), in form.<locals>._create_form(form)
241 """Recursively convert ufl.Forms to dolfinx.fem.Form, otherwise
242 return form argument"""
243 if isinstance(form, ufl.Form):
--> 244 return _form(form)
245 elif isinstance(form, collections.abc.Iterable):
246 return list(map(lambda sub_form: _create_form(sub_form), form))
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/fem/forms.py:186](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/fem/forms.py#line=185), in form.<locals>._form(form)
184 if mesh is None:
185 raise RuntimeError("Expecting to find a Mesh in the form.")
--> 186 ufcx_form, module, code = jit.ffcx_jit(
187 mesh.comm, form, form_compiler_options=form_compiler_options, jit_options=jit_options
188 )
190 # For each argument in form extract its function space
191 V = [arg.ufl_function_space()._cpp_object for arg in form.arguments()]
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/jit.py:51](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/jit.py#line=50), in mpi_jit_decorator.<locals>.mpi_jit(comm, *args, **kwargs)
47 @functools.wraps(local_jit)
48 def mpi_jit(comm, *args, **kwargs):
49 # Just call JIT compiler when running in serial
50 if comm.size == 1:
---> 51 return local_jit(*args, **kwargs)
53 # Default status (0 == ok, 1 == fail)
54 status = 0
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/jit.py:201](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx/jit.py#line=200), in ffcx_jit(ufl_object, form_compiler_options, jit_options)
199 # Switch on type and compile, returning cffi object
200 if isinstance(ufl_object, ufl.Form):
--> 201 r = ffcx.codegeneration.jit.compile_forms([ufl_object], options=p_ffcx, **p_jit)
202 elif isinstance(ufl_object, ufl.AbstractFiniteElement):
203 r = ffcx.codegeneration.jit.compile_elements([ufl_object], options=p_ffcx, **p_jit)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/jit.py:276](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/jit.py#line=275), in compile_forms(forms, options, cache_dir, timeout, cffi_extra_compile_args, cffi_verbose, cffi_debug, cffi_libraries, visualise)
274 except Exception:
275 pass
--> 276 raise e
278 obj, module = _load_objects(cache_dir, module_name, form_names)
279 return obj, module, (decl, impl)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/jit.py:256](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/jit.py#line=255), in compile_forms(forms, options, cache_dir, timeout, cffi_extra_compile_args, cffi_verbose, cffi_debug, cffi_libraries, visualise)
253 for name in form_names:
254 decl += form_template.format(name=name)
--> 256 impl = _compile_objects(
257 decl,
258 forms,
259 form_names,
260 module_name,
261 p,
262 cache_dir,
263 cffi_extra_compile_args,
264 cffi_verbose,
265 cffi_debug,
266 cffi_libraries,
267 visualise=visualise,
268 )
269 except Exception as e:
270 try:
271 # remove c file so that it will not timeout next time
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/jit.py:416](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/ffcx/codegeneration/jit.py#line=415), in _compile_objects(decl, ufl_objects, object_names, module_name, options, cache_dir, cffi_extra_compile_args, cffi_verbose, cffi_debug, cffi_libraries, visualise)
414 root_logger.handlers = [logging.StreamHandler(f)]
415 with redirect_stdout(f):
--> 416 ffibuilder.compile(tmpdir=cache_dir, verbose=True, debug=cffi_debug)
417 s = f.getvalue()
418 if cffi_verbose:
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/api.py:725](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/api.py#line=724), in FFI.compile(self, tmpdir, verbose, target, debug)
723 raise ValueError("set_source() must be called before compile()")
724 module_name, source, source_extension, kwds = self._assigned_source
--> 725 return recompile(self, module_name, source, tmpdir=tmpdir,
726 target=target, source_extension=source_extension,
727 compiler_verbose=verbose, debug=debug, **kwds)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/recompiler.py:1564](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/recompiler.py#line=1563), in recompile(ffi, module_name, preamble, tmpdir, call_c_compiler, c_file, source_extension, extradir, compiler_verbose, target, debug, **kwds)
1562 print('%s %r' % (msg, os.path.abspath(tmpdir)))
1563 os.chdir(tmpdir)
-> 1564 outputfilename = ffiplatform.compile('.', ext,
1565 compiler_verbose, debug)
1566 finally:
1567 os.chdir(cwd)
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/ffiplatform.py:20](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/ffiplatform.py#line=19), in compile(tmpdir, ext, compiler_verbose, debug)
18 saved_environ = os.environ.copy()
19 try:
---> 20 outputfilename = _build(tmpdir, ext, compiler_verbose, debug)
21 outputfilename = os.path.abspath(outputfilename)
22 finally:
23 # workaround for a distutils bugs where some env vars can
24 # become longer and longer every time it is used
File [~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/ffiplatform.py:54](http://localhost:52225/lab/tree/fenics/~/miniconda3/envs/fenicsx-env/lib/python3.12/site-packages/cffi/ffiplatform.py#line=53), in _build(tmpdir, ext, compiler_verbose, debug)
52 set_threshold(old_level)
53 except (CompileError, LinkError) as e:
---> 54 raise VerificationError('%s: %s' % (e.__class__.__name__, e))
55 #
56 return soname
VerificationError: CompileError: command '[/usr/bin/gcc](http://localhost:52225/usr/bin/gcc)' failed with exit code 1
@minrk any idea whats wrong here?
What's suspicious to me is the use of /usr/bin/gcc instead of the conda-packaged compiler, which is a dependency of dolfinx.
Can you export CC=$CONDA_PREFIX/bin/gcc
and try again?
conda list
is also always a good thing to share.
Hello @minrk and @jorgensd ! Yes, your trick did the job! After I had set the following env vars for both conda env and jupyter kernel resp and then, restarting both jupyter and the conda env:
conda activate fenicsx-env
conda env config vars set CC=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-gcc
and
{
"argv": [
"/truba/home/igurcan/miniconda3/envs/fenicsx-env/bin/python",
"-Xfrozen_modules=off",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"env": {
"CC": "/truba/home/igurcan/miniconda3/envs/fenicsx-env/bin/x86_64-conda-linux-gnu-gcc"
},
"display_name": "fenicsx-env",
"language": "python",
"metadata": {
"debugger": true
}
}
So, can we say that the reason was my gcc compiler is not compatible with your ffcx? On the other hand; the one, which is downloaded by conda installation, is compatible?
After all, it turned out that this was not a ffcx issue. I am going to close this, and invite anyone who still wants to reply to do so at the cross posted message https://fenicsproject.discourse.group/t/ufl-expression-cannot-be-compiled-in-fenicsx-tutorial/14977/3
Hello, I am trying to run the following tutorial : Deflection of a Membrane ; but it throws a compilation error at jit level. I think it cannot compile the ufl expression that defines the “LinearProblem”. The instruction at which it throws the exception is:
problem = LinearProblem(a, L, bcs=[bc], petsc_options={"ksp_type": "preonly", "pc_type": "lu"})
The error is the following:
OS : CentOS 7.3.1611 Dolfinx version : 0.8.0 ufl version : 2024.1.0 petsc4py : 3.21.2