@@ -2,12 +2,28 @@ export marine
22
33# Marine Population Dynamics COPS Problem v.0.3.1
44# https://www.mcs.anl.gov/~more//cops/cops3.pdf
5+ <<<<<< < HEAD
56function marine (args... ; n = 400 , T = 10.0 , kwargs... )
67 model = CartesianDiscreteModel ((0 , T), n)
78
89 valuetype = Float64
910 reffe = ReferenceFE (lagrangian, valuetype, 1 )
1011 Vfree = TestFESpace (model, reffe; conformity = :H1 )
12+ ====== =
13+ # n=400, 800, 1600
14+ function marine (args... ; n = 400 , kwargs... )
15+ T = 10.0
16+ model = CartesianDiscreteModel ((0 , T), n)
17+
18+ labels = get_face_labeling (model)
19+ add_tag_from_tags! (labels, " diri0" , [1 ]) # initial time condition
20+
21+ valuetype = Float64
22+ reffe = ReferenceFE (lagrangian, valuetype, 1 )
23+ Vfree = TestFESpace (model, reffe; conformity = :H1 )
24+ VI = TestFESpace (model, reffe; conformity = :H1 , labels = labels, dirichlet_tags = [" diri0" ])
25+ UI = TrialFESpace (VI, 0.0 )
26+ >>>>>> > 795 a1d06d1b16edeafe3d23aef2a206e8ce94b7a
1127 Ufree = TrialFESpace (Vfree)
1228 Xpde = MultiFieldFESpace ([Vfree, Vfree, Vfree, Vfree, Vfree, Vfree, Vfree, Vfree])
1329 Ypde = MultiFieldFESpace ([Ufree, Ufree, Ufree, Ufree, Ufree, Ufree, Ufree, Ufree])
@@ -21,6 +37,7 @@ function marine(args...; n = 400, T = 10.0, kwargs...)
2137 conv (u, ∇u) = (∇u ⋅ one (∇u)) ⊙ u
2238 c (u, v) = conv ∘ (v, ∇ (u))
2339 function res (y, u, p)
40+ <<<<<< < HEAD
2441 # y1, y2, y3, y4, y5, y6, y7, y8 = y
2542 # m1, m2, m3, m4, m5, m6, m7, m8, g1, g2, g3, g4, g5, g6, g7 = u
2643 # p1, p2, p3, p4, p5, p6, p7, p8 = v
@@ -29,6 +46,29 @@ function marine(args...; n = 400, T = 10.0, kwargs...)
2946 c (y[j], p[j]) - u[8 + j - 1 ] * y[j - 1 ] + (u[j] + u[8 + j]) * y[j]
3047 )dΩ for j= 2 : 7 ) +
3148 ∫ ( c (y[8 ], p[8 ]) - u[15 ] * y[7 ] + u[8 ] * y[8 ] )dΩ
49+ ====== =
50+ y1, y2, y3, y4, y5, y6, y7, y8 = y
51+ m1, m2, m3, m4, m5, m6, m7, m8, g1, g2, g3, g4, g5, g6, g7 = u
52+ p1, p2, p3, p4, p5, p6, p7, p8 = p
53+ return ∫ ( c (y1, p1) + p1 * (m1 + g1) * y1 +
54+ c (y2, p2) - p2 * g1 * y1 + p2 * (m2 + g2) * y2 +
55+ c (y3, p3) - p3 * g2 * y2 + p3 * (m3 + g3) * y3 +
56+ c (y4, p4) - p4 * g3 * y3 + p4 * (m4 + g4) * y4 +
57+ c (y5, p5) - p5 * g4 * y4 + p5 * (m5 + g5) * y5 +
58+ c (y6, p6) - p6 * g5 * y5 + p6 * (m6 + g6) * y6 +
59+ c (y7, p7) - p7 * g6 * y6 + p7 * (m7 + g7) * y7 +
60+ c (y8, p8) - p8 * g7 * y7 + p8 * m8 * y8 )dΩ
61+ #=
62+ return ∫( c(y[1], p[1]) + (u[1] + u[8 + 1]) * y[1] +
63+ c(y[2], p[2]) - u[8 + 2 -1] * y[2 - 1] + (u[2] + u[8 + 2]) * y[2] +
64+ c(y[3], p[3]) - u[8 + 3 -1] * y[3 - 1] + (u[3] + u[8 + 3]) * y[3] +
65+ c(y[4], p[4]) - u[8 + 4 -1] * y[4 - 1] + (u[4] + u[8 + 4]) * y[4] +
66+ c(y[5], p[5]) - u[8 + 5 -1] * y[5 - 1] + (u[5] + u[8 + 5]) * y[5] +
67+ c(y[6], p[6]) - u[8 + 6 -1] * y[6 - 1] + (u[6] + u[8 + 6]) * y[6] +
68+ c(y[7], p[7]) - u[8 + 7 -1] * y[7 - 1] + (u[7] + u[8 + 7]) * y[7] +
69+ c(y[8], p[8]) - u[15] * y[7] + u[8] * y[8] )dΩ
70+ =#
71+ >>>>>> > 795 a1d06d1b16edeafe3d23aef2a206e8ce94b7a
3272 end
3373
3474 trian = Triangulation (model)
@@ -83,16 +123,16 @@ function marine(args...; n = 400, T = 10.0, kwargs...)
83123 1.0 12.0 198.0 707.0 2562.0 3163.0 3232.0 5566.0
84124 ]
85125
86- objterm = PDEOptimizationProblems. InterpolatedEnergyFETerm (8 , 21 , zmes, 1 , τ, dΩ)
126+ objterm = PDEOptimizationProblems. InterpolatedEnergyFETerm (8 , 21 , zmes, 1 , τ, dΩ, 1 / n )
87127 f = (y, u) -> PDEOptimizationProblems. interpolated_measurement (objterm, y)
88128
89129 ndofs = Gridap. FESpaces. num_free_dofs (Ypde) + Gridap. FESpaces. num_free_dofs (Ycon)
90130 xin = zeros (ndofs)
91131 return GridapPDENLPModel (xin, f, trian, Ypde, Ycon, Xpde, Xcon, op, name = " Marine Population Dynamics n=$n " )
92132end
93133
94- apinene_meta = Dict (
95- :name => " apinene " ,
134+ marine_meta = Dict (
135+ :name => " marine " ,
96136 :domaindim => UInt8 (1 ),
97137 :pbtype => :yu ,
98138 :nθ => 0 ,
0 commit comments