Hi all,
I’m attempting to solve a system using an HDG scheme, where my test and trial variables live in different space-time spaces. Here’s a quick break down of how my spaces are defined:
#========================================================
mesh = Make1DMesh(n=53n0, mapping=lambda x:-28+53x)
V = VectorL2(mesh, order=order, dgjumps = True)
W = L2(mesh, order=order, dgjumps = True)
M = FacetFESpace(mesh, order = 0, dirichlet=“.*”, dgjumps = True)
#create space-time fes spaces
k_t = 1
tfe = ScalarTimeFE(k_t)
tfe0 = ScalarTimeFE(k_t-1)
tfe1 = ScalarTimeFE(0)
st_fesV = tfe * V
st_fesV0 = tfe0 * V
st_fesV1 = tfe1 * V
st_fesW = tfe * W
st_fesW0 = tfe0 * W
st_fesW1 = tfe1 * W
st_fesM = tfe * M
st_fesM0 = tfe0 * M
st_fesM1 = tfe1 * M
fes = FESpace([st_fesV, st_fesV, st_fesV, st_fesV, st_fesV, st_fesW, st_fesW, st_fesW, st_fesM, st_fesM, st_fesM])
fesW = FESpace([st_fesV, st_fesV, st_fesV0, st_fesV1, st_fesV, st_fesV, st_fesW, st_fesW, st_fesW0, st_fesW1, st_fesM, st_fesM, st_fesM0, st_fesM1])
fes0 = FESpace([V,V,V,V,V,W,W,W,M,M,M])
#========================================================
The bilinear form is then defined as:
a = BilinearForm(testspace = fesW, trialspace = fes)
And differential symbols are defined:
dxt = dxtref(mesh, time_order = 2*k_t)
dxold = dmesh(mesh, tref = 0)
dxnew = dmesh(mesh, tref = 1)
dxtf = dxtref(mesh, time_order = 2*k_t, element_boundary=True)
dxoldf = dmesh(mesh, tref = 0, element_boundary=True)
dxnewf = dmesh(mesh, tref = 1, element_boundary=True)
where the last 3 differential symbols are used for terms involving facet jumps. When I attempt to solve the system using:
Newton(a, gfu, inverse=‘umfpack’, maxerr=1e-8, printing=False)
my kernel repeatedly dies. Am I missing some sort of flag somewhere? I would appreciate any direction in this situation.
Best,
Diana