Open bmxam opened 2 months ago
This is not exactly what we talked about during the live session, but the idea is to introduce Bcube.NullOperator(v) and/or Bcube.NullOperator(v, n) to enable the following MWE:
Bcube.NullOperator(v)
Bcube.NullOperator(v, n)
using Bcube using LinearAlgebra mesh = rectangle_mesh(4, 4) Γ = InteriorFaceDomain(mesh) dΓ = Measure(Γ, 1) nΓ = get_face_normals(Γ) function f_sca(vi, vj, nij) # Today: return 0.0 * vi # Tomorrow (doesn't work yet)? return Bcube.NullOperator() return Bcube.NullOperator(vi) return Bcube.NullOperator(vi, nij) end function f_vec(vi, vj, nij) # Today: return 0.0 * vi[1] + 0.0 * vi[2] ⋅ nij # Tomorrow (doesn't work yet )? return Bcube.NullOperator() return Bcube.NullOperator(vi) return Bcube.NullOperator(vi, nij) end # Scalar Usca = TrialFESpace(FunctionSpace(:Lagrange, 0), mesh) Vsca = TestFESpace(Usca) l(v) = ∫(f_sca ∘ (side_n(v), side_p(v), side_n(nΓ)))dΓ assemble_linear(l, Vsca) # Vector Uvec = TrialFESpace(FunctionSpace(:Lagrange, 0), mesh; size = 2) Vvec = TestFESpace(Uvec) V = MultiFESpace(Vsca, Vvec) l(v) = ∫(f_vec ∘ (side_n(v), side_p(v), side_n(nΓ)))dΓ assemble_linear(l, V)
the MWE is now correct
This is not exactly what we talked about during the live session, but the idea is to introduce
Bcube.NullOperator(v)
and/orBcube.NullOperator(v, n)
to enable the following MWE: