Hi Konstantinos,
Thank you again for your previous detailed explanation.
Following interface/tests/python/demo_crack.py, I tested the level set and jump-function enrichment in 3D, and these parts work well. However, when I try to add crack tip enrichment, I consistently encounter an error.
I use the following code:
import getfem as gf
import numpy as np
L = [100.0, 100.0, 10.0]
elements = [20, 20, 2]
#3D case
mesh = gf.Mesh('cartesian', np.linspace(0, L[0], elements[0]+1),
np.linspace(0, L[1], elements[1]+1),
np.linspace(0, L[2], elements[2]+1))
level_set = gf.LevelSet(mesh, 1, 'y - 52','x-10') # Horizontal crack at y=50
mesh_level_set = gf.MeshLevelSet(mesh)
mesh_level_set.add(level_set)
mesh_level_set.adapt()
ck0 = gf.GlobalFunction('crack',0)
ck1 = gf.GlobalFunction('crack',1)
ck2 = gf.GlobalFunction('crack',2)
ck3 = gf.GlobalFunction('crack',3)
meshFem_sing_u = gf.MeshFem('global function',mesh,level_set,[ck0,ck1,ck2,ck3],1)
and obtain the following error:
RuntimeError: (Getfem::InterfaceError) -- Error in getfem_fem_global_function.cc, line 103 virtual void getfem::fem_global_function::update_from_context() const:
Convexes of different dimension: to be done
After checking the implementation in src/getfem_global_function.cc, I noticed that crack_singular_xy_function is defined only for 2D cases. Is this the source of the problem?
Do you think this limitation is indeed the reason for the error? And if so, would extending this crack-tip singular function to 3D be particularly challenging within the current GetFEM framework?
Thanks!