Skip to content

Commit c8a48f3

Browse files
authored
Merge pull request #71 from MultiSimOLab/revert-69-revert-68-bc
Revert "Revert "Extended NothingBC and MultiFieldBC""
2 parents f226dc8 + a919d6b commit c8a48f3

File tree

3 files changed

+11
-15
lines changed

3 files changed

+11
-15
lines changed

src/ComputationalModels/BoundaryConditions.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ struct MultiFieldBC <: BoundaryCondition
1010
BoundaryCondition::Vector{BoundaryCondition}
1111
end
1212

13+
getindex(bc::MultiFieldBC, i) = bc.BoundaryCondition[i]
14+
1315
include("EvolutionFunctions.jl")
1416
include("CartesianTags.jl")
1517

src/ComputationalModels/ComputationalModels.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ using WriteVTK
3434
using GridapGmsh
3535
using GridapGmsh: GmshDiscreteModel
3636

37+
import Base.getindex
3738

3839
include("BoundaryConditions.jl")
3940
export DirichletBC

src/ComputationalModels/FESpaces.jl

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,30 +44,23 @@ end
4444

4545
function Gridap.FESpaces.TrialFESpace!(space::MultiFieldFESpace, bc::MultiFieldBC, Λ::Float64)
4646
@inbounds for (i, space) in enumerate(space.spaces)
47-
TrialFESpace!(space, bc.BoundaryCondition[i], Λ)
47+
TrialFESpace!(space, bc[i], Λ)
4848
end
4949
end
5050

5151
function Gridap.FESpaces.TrialFESpace!(space::MultiFieldFESpace, bc::MultiFieldBC, Λ::Float64, ΔΛ::Float64)
5252
@inbounds for (i, space) in enumerate(space.spaces)
53-
TrialFESpace!(space, bc.BoundaryCondition[i], Λ, ΔΛ)
53+
TrialFESpace!(space, bc[i], Λ, ΔΛ)
5454
end
5555
end
5656

57-
function Gridap.FESpaces.TrialFESpace(space::SingleFieldFESpace, bc::DirichletBC)
58-
TrialFESpace(space, bc, 0.0)
59-
end
60-
61-
function Gridap.FESpaces.TrialFESpace(space::MultiFieldFESpace, bc::MultiFieldBC)
62-
TrialFESpace(space, bc, 0.0)
63-
end
64-
6557

66-
function Gridap.FESpaces.TrialFESpace(space::SingleFieldFESpace, ::NothingBC, Λ::Float64)
58+
function Gridap.FESpaces.TrialFESpace(space::SingleFieldFESpace, ::NothingBC, Λ::Float64=0.0)
6759
space
6860
end
6961

70-
function Gridap.FESpaces.TrialFESpace(space::SingleFieldFESpace, bc::DirichletBC, Λ::Float64)
62+
63+
function Gridap.FESpaces.TrialFESpace(space::SingleFieldFESpace, bc::DirichletBC, Λ::Float64=0.0)
7164
trialspace= TrialFESpace(space, map(f -> f(Λ), bc.values))
7265
@inbounds for i in eachindex(bc.tags)
7366
if bc.caches[i] isa InterpolableBC
@@ -78,13 +71,13 @@ function Gridap.FESpaces.TrialFESpace(space::SingleFieldFESpace, bc::DirichletBC
7871
return trialspace
7972
end
8073

81-
function Gridap.FESpaces.TrialFESpace(space::MultiFieldFESpace, bc::MultiFieldBC, Λ::Float64)
74+
75+
function Gridap.FESpaces.TrialFESpace(space::MultiFieldFESpace, bc::MultiFieldBC, Λ::Float64=0.0)
8276
U_ = Vector{Union{TrialFESpace,UnconstrainedFESpace}}(undef, length(space))
8377
@inbounds for (i, space) in enumerate(space.spaces)
84-
U_[i] = TrialFESpace(space, bc.BoundaryCondition[i], Λ)
78+
U_[i] = TrialFESpace(space, bc[i], Λ)
8579
end
8680
return MultiFieldFESpace(U_)
87-
8881
end
8982

9083

0 commit comments

Comments
 (0)