diff src/BoundaryConditions/boundary_condition.jl @ 1481:ee242c3fe4af feature/boundary_conditions

Support boundary identifiers for 1D grids
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 25 Dec 2023 19:23:09 +0100
parents 481960ca366f
children 37b05221beda
line wrap: on
line diff
--- a/src/BoundaryConditions/boundary_condition.jl	Sat Dec 23 23:03:13 2023 +0100
+++ b/src/BoundaryConditions/boundary_condition.jl	Mon Dec 25 19:23:09 2023 +0100
@@ -4,7 +4,7 @@
 A type for implementing data needed in order to impose a boundary condition.
 Subtypes refer to perticular types of boundary conditions, e.g. Neumann conditions.
 """
-abstract type BoundaryCondition{T} end
+abstract type BoundaryCondition{T1,T2} end
 
 """
     id(::BoundaryCondition)
@@ -22,25 +22,25 @@
 function data end
 
 """
-    discretize(::BoundaryData, boundary_grid)
+    discretize(grid, bc::BoundaryCondition)
 
-Returns an anonymous time-dependent function f, such that f(t) is
-a `LazyArray` holding the `BoundaryData` discretized on `boundary_grid`.
+The grid function obtained from discretizing the `bc` data on the boundary grid
+    specified the by bc `id`.
 """
 function discretize_data(grid, bc::BoundaryCondition)
     return eval_on(boundary_grid(grid, id(bc)), data(bc))
 end
 
-struct DirichletCondition{T} <: BoundaryCondition{T}
-    data::T
-    id::BoundaryIdentifier
+struct DirichletCondition{T1,T2} <: BoundaryCondition{T1,T2}
+    data::T1
+    id::T2
 end
 id(bc::DirichletCondition) = bc.id
 data(bc::DirichletCondition) = bc.data
 
-struct NeumannCondition{T} <: BoundaryCondition{T}
-    data::T
-    id::BoundaryIdentifier 
+struct NeumannCondition{T1,T2} <: BoundaryCondition{T1,T2}
+    data::T1
+    id::T2
 end
 id(bc::NeumannCondition) = bc.id
 data(bc::NeumannCondition) = bc.data