Artifacts in solution after switch from tet to hex mesh?
Hello,
Thank you to everyone for all the effort that has been put into SfePy, it is a pleasure to use.
I am trying to solve a transient diffusion problem similar to the poisson_periodic_boundary_condition.py example but on a mesh of hexahedral elements. The example works well with the provided tet mesh. When I switch to a hex mesh the solution has some problems. The solution on gridpoints just outside the source region goes below zero at early times and the solution has some waves along line x=y=z.
It seem like the elements may be read in wrong but I cannot figure out the problem. I create the hex mesh, test_hex.mesh, with this Python code:
import numpy as np from sfepy.mesh.mesh_generators import gen_block_mesh from sfepy.discrete.fem.meshio import MeditMeshIO
mesh = gen_block_mesh(np.array((10,10,1)), np.array((11,11,2)), np.array((5.0,5.0,0.5)), mat_id=9, verbose=True) m = MeditMeshIO("dummy_name") m.write("test_hex.mesh", mesh)
The attached code is a simplification of the poisson_periodic_boundary_condition.py example, I removed the periodic boundary condition and the time-dependent material properties. with_tet_mesh.py gives good results and with_hex_mesh.py shows the problem.
I am running Python 2.7.13 and SfePy version 2017.2; I get the same result from the current SfePy github master. I run the code with the command python simple.py with_hex_mesh.py.
Can someone help me understand where I am going wrong?
Thanks, Jason
participants (3)
-
Jason Furtney
-
Jason Furtney
-
Robert Cimrman