@@ -18,12 +18,12 @@ function generate_maps(bcs, t, s, tspan, grid_align)
1818 depvarbcmaps = reduce (vcat,[subvar (depvar, edgevals (s)) .=> edgevar for (depvar, edgevar) in zip (s. vars, edgevars (s))])
1919 end
2020 # depvarderivbcmaps will dictate what to replace the Differential terms with in the bcs
21- if length (s. params ) == 1
21+ if length (s. nottime ) == 1
2222 # 1D system
23- bc_der_orders = filter (! iszero,sort (unique ([count_differentials (bc. lhs, s. params [1 ]) for bc in bcs])))
23+ bc_der_orders = filter (! iszero,sort (unique ([count_differentials (bc. lhs, s. nottime [1 ]) for bc in bcs])))
2424 left_weights (d_order,j) = calculate_weights (d_order, s. grid[j][1 ], s. grid[j][1 : 1 + d_order])
2525 right_weights (d_order,j) = calculate_weights (d_order, s. grid[j][end ], s. grid[j][end - d_order: end ])
26- # central_neighbor_idxs(II,j) = [II-CartesianIndex((1:length(s.params ).==j)...),II,II+CartesianIndex((1:length(s.params ).==j)...)]
26+ # central_neighbor_idxs(II,j) = [II-CartesianIndex((1:length(s.nottime ).==j)...),II,II+CartesianIndex((1:length(s.nottime ).==j)...)]
2727 left_idxs (d_order) = CartesianIndices (s. grid[1 ])[1 : 1 + d_order]
2828 right_idxs (d_order,j) = CartesianIndices (s. grid[j])[end - d_order: end ]
2929 # Constructs symbolic spatially discretized terms of the form e.g. au₂ - bu₁
@@ -32,7 +32,7 @@ function generate_maps(bcs, t, s, tspan, grid_align)
3232 subderivar (depvar,d_order,x) = substitute .(((Differential (x)^ d_order)(depvar),), edgevals (s))
3333 # Create map of symbolic Differential terms with symbolic spatially discretized terms
3434 depvarderivbcmaps = []
35- for x in s. params
35+ for x in s. nottime
3636 rs = (subderivar (depvar,bc_der_orders[j],x) .=> derivars[i][j] for j in 1 : length (bc_der_orders), (i,depvar) in enumerate (s. vars))
3737 for r in rs
3838 push! (depvarderivbcmaps, r)
@@ -45,7 +45,7 @@ function generate_maps(bcs, t, s, tspan, grid_align)
4545 for depvar in s. discvars]
4646 # replace u(t,0) with (u₁ + u₂) / 2, etc
4747 depvarbcmaps = reduce (vcat,[subvar (depvar, edgevals (s)) .=> bcvars[i]
48- for (i, depvar) in enumerate (s. vars) for param in s. params ])
48+ for (i, depvar) in enumerate (s. vars) for param in s. nottime ])
4949
5050 end
5151 else
@@ -62,7 +62,7 @@ function generate_maps(bcs, t, s, tspan, grid_align)
6262 end
6363
6464 # All unique order of derivates in BCs
65- bc_der_orders = filter (! iszero,sort (unique ([count_differentials (bc. lhs, s. params [1 ]) for bc in bcs])))
65+ bc_der_orders = filter (! iszero,sort (unique ([count_differentials (bc. lhs, s. nottime [1 ]) for bc in bcs])))
6666 # no. of different orders in BCs
6767 n = length (bc_der_orders)
6868 return BoundaryMap (depvarbcmaps, DerivativeMap {n} (depvarderivbcmaps, bc_der_orders), initmaps)
7272"""
7373Mutates bceqs and u0 by finding relevant equations and discretizing them
7474"""
75- function generate_u0_and_bceqs!! (u0, bceqs, bcs, t, s, depvar_ops, tspan, discretization)
75+ function generate_u0_and_bceqs!! (u0, bceqs, bcs, s, depvar_ops, tspan, discretization)
7676 grid_align = discretization. grid_align
77+ t= discretization. time
7778 boundarymap = generate_maps (bcs, t, s, tspan, grid_align)
7879 # Generate initial conditions and bc equations
7980 for bc in bcs
@@ -94,19 +95,19 @@ function generate_u0_and_bceqs!!(u0, bceqs, bcs, t, s, depvar_ops, tspan, discre
9495 # Replace Differential terms in the bc lhs with the symbolic spatially discretized terms
9596 # TODO : Fix Neumann and Robin on higher dimension
9697 # Update: Fixed for 1D systems
97- derivativecount = count_differentials (bc. lhs, s. params [1 ])
98+ derivativecount = count_differentials (bc. lhs, s. nottime [1 ])
9899 derivativeindex = findfirst (isequal (derivativecount), boundarymap. derivatives. orders)
99100 k = initindex% 2 == 0 ? 2 : 1
100101
101- if (length (s. params ) == 1 ) && (derivativeindex != = nothing )
102+ if (length (s. nottime ) == 1 ) && (derivativeindex != = nothing )
102103 lhs = substitute (bc. lhs, boundarymap. derivatives. map[derivativeindex + count (boundarymap. derivatives)* Int (floor ((initindex- 1 )/ 2 ))][k])
103104 else
104105 lhs = bc. lhs
105106 end
106107
107108 # Replace symbol in the bc lhs with the spatial discretized term
108109 lhs = substitute (lhs,boundarymap. vars[initindex])
109- rhs = substitute .((bc. rhs,), edgemaps (t, s)[bcargs])
110+ rhs = substitute .((bc. rhs,), edgemaps (s)[bcargs])
110111 lhs = lhs isa Vector ? lhs : [lhs] # handle 1D
111112 push! (bceqs,lhs .~ rhs)
112113 end
0 commit comments