-
Notifications
You must be signed in to change notification settings - Fork 98
/
ODEs.jl
181 lines (133 loc) · 3.24 KB
/
ODEs.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
"""
The exported names are
$(EXPORTS)
"""
module ODEs
using Test
using DocStringExtensions
using LinearAlgebra
using LinearAlgebra: fillstored!
using SparseArrays
using BlockArrays
using NLsolve
using ForwardDiff
using Gridap.Helpers
using Gridap.Algebra
using Gridap.Algebra: NLSolversCache
using Gridap.Arrays
using Gridap.TensorValues
using Gridap.Fields
using Gridap.Polynomials
using Gridap.ReferenceFEs
using Gridap.Geometry
using Gridap.CellData
using Gridap.CellData: OperationCellField
using Gridap.CellData: CellFieldAt
using Gridap.FESpaces
using Gridap.FESpaces: SingleFieldFEBasis
using Gridap.MultiField
const ε = 100 * eps()
include("TimeDerivatives.jl")
export TimeSpaceFunction
export time_derivative
export ∂t
export ∂tt
include("ODEOperators.jl")
export ODEOperatorType
export NonlinearODE
export AbstractQuasilinearODE
export QuasilinearODE
export AbstractSemilinearODE
export SemilinearODE
export AbstractLinearODE
export LinearODE
export ODEOperator
export get_num_forms
export get_forms
export is_form_constant
export allocate_odeopcache
export update_odeopcache!
export jacobian_add!
export IMEXODEOperator
export get_imex_operators
export GenericIMEXODEOperator
export test_ode_operator
include("StageOperators.jl")
export StageOperator
export NonlinearStageOperator
export LinearStageOperator
include("ODESolvers.jl")
export ODESolver
export allocate_odecache
export ode_start
export ode_march!
export ode_finish!
export test_ode_solver
export ForwardEuler
export ThetaMethod
export MidPoint
export BackwardEuler
export GeneralizedAlpha1
export TableauType
export ExplicitTableau
export ImplicitTableau
export FullyImplicitTableau
export DiagonallyImplicitTableau
export ImplicitExplicitTableau
export AbstractTableau
export GenericTableau
export EmbeddedTableau
export get_embedded_weights
export get_embedded_order
export IMEXTableau
export get_imex_tableaus
export is_padded
export TableauName
export ButcherTableau
export available_tableaus
export available_imex_tableaus
export RungeKutta
export GeneralizedAlpha2
export Newmark
include("ODESolutions.jl")
export ODESolution
export GenericODESolution
export test_ode_solution
include("TransientFESpaces.jl")
export allocate_space
export TransientTrialFESpace
export TransientMultiFieldFESpace
export test_tfe_space
include("TransientCellFields.jl")
export TransientCellField
export TransientSingleFieldCellField
export TransientMultiFieldCellField
export TransientFEBasis
include("TransientFEOperators.jl")
export TransientFEOperator
export get_assembler
export get_res
export get_jacs
export allocate_tfeopcache
export update_tfeopcache!
export TransientFEOpFromWeakForm
export TransientQuasilinearFEOpFromWeakForm
export TransientQuasilinearFEOperator
export TransientSemilinearFEOpFromWeakForm
export TransientSemilinearFEOperator
export TransientLinearFEOpFromWeakForm
export TransientLinearFEOperator
export TransientIMEXFEOperator
export GenericTransientIMEXFEOperator
export test_tfe_operator
include("ODEOpsFromTFEOps.jl")
export ODEOpFromTFEOpCache
export ODEOpFromTFEOp
include("TransientFESolutions.jl")
export TransientFESolution
export test_tfe_solution
export test_tfe_solver
# include("_DiffEqsWrappers.jl")
end # module ODEs
# TODO useful?
const GridapODEs = ODEs