dolfinx_mpc
dolfinx_mpc copied to clipboard
TypeError when running periodic demos with dolfinx/dolfinx_mpc v0.8.0
Hello, I am unable to run the periodic demos using dolfinx 0.8.0 and dolfinx_mpc 0.8.0, with Python 3.12.6. The demos I can't run are the following:
- https://github.com/jorgensd/dolfinx_mpc/blob/v0.8.0/python/demos/demo_periodic_geometrical.py
- https://github.com/jorgensd/dolfinx_mpc/blob/v0.8.0/python/demos/demo_periodic3d_topological.py
In both cases I get a similar error, here's the error for demo_periodic_geometrical.py
:
File "/home/bnherrerac/p2/demos/demo_periodic_geometrical.py", line 81, in <module>
mpc.create_periodic_constraint_geometrical(V, periodic_boundary, periodic_relation, bcs)
File "/home/bnherrerac/anaconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx_mpc/multipointconstraint.py", line 286, in create_periodic_constraint_geometrical
mpc_data = dolfinx_mpc.cpp.mpc.create_periodic_constraint_geometrical(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: create_periodic_constraint_geometrical(): incompatible function arguments. The following argument types are supported:
1. create_periodic_constraint_geometrical(V: dolfinx::fem::FunctionSpace<float>, indicator: Callable[[numpy.ndarray[dtype=float32, writable=False, shape=(*, *), ]], ndarray[dtype=bool, shape=(*), order='C']], relation: Callable[[numpy.ndarray[dtype=float32, writable=False, shape=(*, *), ]], numpy.ndarray[dtype=float32, shape=(*, *), ]], bcs: list[dolfinx::fem::DirichletBC<float, float>], scale: float, collapse: bool) -> dolfinx_mpc.cpp.mpc.mpc_data_float
2. create_periodic_constraint_geometrical(V: dolfinx::fem::FunctionSpace<float>, indicator: Callable[[numpy.ndarray[dtype=float32, writable=False, shape=(*, *), ]], ndarray[dtype=bool, shape=(*), order='C']], relation: Callable[[numpy.ndarray[dtype=float32, writable=False, shape=(*, *), ]], numpy.ndarray[dtype=float32, shape=(*, *), ]], bcs: list[dolfinx::fem::DirichletBC<std::complex<float>, float>], scale: complex, collapse: bool) -> dolfinx_mpc.cpp.mpc.mpc_data_complex_float
3. create_periodic_constraint_geometrical(V: dolfinx::fem::FunctionSpace<double>, indicator: Callable[[numpy.ndarray[dtype=float64, writable=False, shape=(*, *), ]], ndarray[dtype=bool, shape=(*), order='C']], relation: Callable[[numpy.ndarray[dtype=float64, writable=False, shape=(*, *), ]], numpy.ndarray[dtype=float64, shape=(*, *), ]], bcs: list[dolfinx::fem::DirichletBC<double, double>], scale: float, collapse: bool) -> dolfinx_mpc.cpp.mpc.mpc_data_double
4. create_periodic_constraint_geometrical(V: dolfinx::fem::FunctionSpace<double>, indicator: Callable[[numpy.ndarray[dtype=float64, writable=False, shape=(*, *), ]], ndarray[dtype=bool, shape=(*), order='C']], relation: Callable[[numpy.ndarray[dtype=float64, writable=False, shape=(*, *), ]], numpy.ndarray[dtype=float64, shape=(*, *), ]], bcs: list[dolfinx::fem::DirichletBC<std::complex<double>, double>], scale: complex, collapse: bool) -> dolfinx_mpc.cpp.mpc.mpc_data_complex_double
Invoked with types: dolfinx.cpp.fem.FunctionSpace_float64, function, function, list, float, bool
And the error for demo_periodic3d_topological.py
:
Traceback (most recent call last):
File "/home/bnherrerac/p2/demos/demo_periodic3d_topological.py", line 187, in <module>
demo_periodic3D(celltype)
File "/home/bnherrerac/p2/demos/demo_periodic3d_topological.py", line 97, in demo_periodic3D
mpc.create_periodic_constraint_topological(V.sub(0), mt, 2, periodic_relation, bcs, default_scalar_type(1))
File "/home/bnherrerac/anaconda3/envs/fenicsx-env/lib/python3.12/site-packages/dolfinx_mpc/multipointconstraint.py", line 254, in create_periodic_constraint_topological
mpc_data = dolfinx_mpc.cpp.mpc.create_periodic_constraint_topological(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: create_periodic_constraint_topological(): incompatible function arguments. The following argument types are supported:
1. create_periodic_constraint_topological(V: dolfinx::fem::FunctionSpace<float>, meshtags: dolfinx::mesh::MeshTags<int>, dim: int, relation: Callable[[numpy.ndarray[dtype=float32, writable=False, shape=(*, *), ]], numpy.ndarray[dtype=float32, shape=(*, *), ]], bcs: list[dolfinx::fem::DirichletBC<float, float>], scale: float, collapse: bool) -> dolfinx_mpc.cpp.mpc.mpc_data_float
2. create_periodic_constraint_topological(V: dolfinx::fem::FunctionSpace<float>, meshtags: dolfinx::mesh::MeshTags<int>, dim: int, relation: Callable[[numpy.ndarray[dtype=float32, writable=False, shape=(*, *), ]], numpy.ndarray[dtype=float32, shape=(*, *), ]], bcs: list[dolfinx::fem::DirichletBC<std::complex<float>, float>], scale: complex, collapse: bool) -> dolfinx_mpc.cpp.mpc.mpc_data_complex_float
3. create_periodic_constraint_topological(V: dolfinx::fem::FunctionSpace<double>, meshtags: dolfinx::mesh::MeshTags<int>, dim: int, relation: Callable[[numpy.ndarray[dtype=float64, writable=False, shape=(*, *), ]], numpy.ndarray[dtype=float64, shape=(*, *), ]], bcs: list[dolfinx::fem::DirichletBC<double, double>], scale: float, collapse: bool) -> dolfinx_mpc.cpp.mpc.mpc_data_double
4. create_periodic_constraint_topological(V: dolfinx::fem::FunctionSpace<double>, meshtags: dolfinx::mesh::MeshTags<int>, dim: int, relation: Callable[[numpy.ndarray[dtype=float64, writable=False, shape=(*, *), ]], numpy.ndarray[dtype=float64, shape=(*, *), ]], bcs: list[dolfinx::fem::DirichletBC<std::complex<double>, double>], scale: complex, collapse: bool) -> dolfinx_mpc.cpp.mpc.mpc_data_complex_double
Invoked with types: dolfinx.cpp.fem.FunctionSpace_float64, dolfinx.cpp.mesh.MeshTags_int32, int, function, list, float, bool
I installed dolfinx and dolfinx_mpc via conda install, and made sure that both versions are 0.8.0. I am trying to run a similar code, where I impose periodic boundary conditions in opposite faces of an unit cell, but I get stuck when calling create_periodic_constraint_geometrical
, as in the demo. If you have any idea how I could get around this, it would be very helpful. Thanks in advance!