Skip to content

Commit d4d7924

Browse files
author
Jeremy E Kozdon
committed
More "Julian" names and match prior convention
1 parent 5c5f286 commit d4d7924

5 files changed

Lines changed: 147 additions & 122 deletions

File tree

examples/ksp/ex50.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ function rhs!(
1313
ksp::PETSc.AbstractKSP{PetscScalar},
1414
b_vec::PETSc.AbstractVec{PetscScalar},
1515
) where {PetscScalar}
16-
dm = PETSc.KSPGetDM(ksp)
16+
dm = PETSc.DMDA(ksp)
1717
comm = PETSc.getcomm(ksp)
18-
corners = PETSc.DMDAGetCorners(dm)
19-
global_size = PETSc.DMDAGetInfo(dm).global_size[1:2]
18+
corners = PETSc.getcorners(dm)
19+
global_size = PETSc.getinfo(dm).global_size[1:2]
2020

2121
# Grid spacing in each direction
2222
h = PetscScalar(1) ./ global_size
@@ -54,11 +54,11 @@ function jacobian!(
5454
J::PETSc.AbstractMat{PetscScalar},
5555
jac::PETSc.AbstractMat{PetscScalar},
5656
) where {PetscScalar}
57-
dm = PETSc.KSPGetDM(ksp)
58-
corners = PETSc.DMDAGetCorners(dm)
57+
dm = PETSc.DMDA(ksp)
58+
corners = PETSc.getcorners(dm)
5959
PetscInt = eltype(corners.size)
6060

61-
global_size = PETSc.DMDAGetInfo(dm).global_size[1:2]
61+
global_size = PETSc.getinfo(dm).global_size[1:2]
6262

6363
# Grid spacing in each direction
6464
h = PetscScalar(1) ./ global_size

src/dm.jl

Lines changed: 79 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,67 @@
11
const CDM = Ptr{Cvoid}
2-
32
abstract type AbstractDM{PetscLib} end
43

4+
"""
5+
DMLocalVec(v::CVec, dm::AbstractDM)
6+
7+
Container for an PETSc vector we know is "local"
8+
9+
# External Links
10+
$(_doc_external("Vec/Vec"))
11+
"""
12+
mutable struct DMLocalVec{PetscLib, T, T_DM} <: AbstractVec{T}
13+
ptr::CVec
14+
dm::T_DM
15+
function DMLocalVec(ptr, dm::AbstractDM{PetscLib}) where {PetscLib}
16+
new{PetscLib, scalartype(PetscLib), typeof(dm)}(ptr, dm)
17+
end
18+
end
19+
20+
"""
21+
DMGlobalVec(v::CVec, dm::AbstractDM)
22+
23+
Container for an PETSc vector we know is "global"
24+
25+
# External Links
26+
$(_doc_external("Vec/Vec"))
27+
"""
28+
mutable struct DMGlobalVec{PetscLib, T, T_DM} <: AbstractVec{T}
29+
ptr::CVec
30+
dm::T_DM
31+
function DMGlobalVec(ptr, dm::AbstractDM{PetscLib}) where {PetscLib}
32+
new{PetscLib, scalartype(PetscLib), typeof(dm)}(ptr, dm)
33+
end
34+
end
35+
536
# Mainly for DM we do not know the type of, namely ones returned by PETSc
637
# functions such as `KSPGetDM`
738
mutable struct PetscDM{PetscLib} <: AbstractDM{PetscLib}
839
ptr::CDM
940
end
1041

11-
1242
"""
13-
DMSetUp!(da::DM, opts=da.opts)
43+
setup!(da::DM, opts=da.opts)
1444
1545
# External Links
1646
$(_doc_external("DM/DMSetUp"))
1747
"""
18-
function DMSetUp! end
48+
function setup! end
1949

20-
@for_petsc function DMSetUp!(da::AbstractDM{$PetscLib}, opts::Options = da.opts)
50+
@for_petsc function setup!(da::AbstractDM{$PetscLib}, opts::Options = da.opts)
2151
with(opts) do
2252
@chk ccall((:DMSetUp, $petsc_library), PetscErrorCode, (CDM,), da)
2353
end
2454
end
2555

2656
"""
27-
DMSetFromOptions!(da::DM, opts=da.opts)
57+
setfromoptions!(da::DM, opts=da.opts)
2858
2959
# External Links
3060
$(_doc_external("DM/DMSetFromOptions"))
3161
"""
32-
function DMSetFromOptions! end
62+
function setfromoptions! end
3363

34-
@for_petsc function DMSetFromOptions!(
64+
@for_petsc function setfromoptions!(
3565
da::AbstractDM{$PetscLib},
3666
opts::Options = da.opts,
3767
)
@@ -59,16 +89,16 @@ end
5989
end
6090

6191
"""
62-
DMGetDimension(dm::AbstractDM)
92+
getdimension(dm::AbstractDM)
6393
6494
Return the topological dimension of the `dm`
6595
6696
# External Links
6797
$(_doc_external("DM/DMGetDimension"))
6898
"""
69-
function DMGetDimension end
99+
function getdimension(::AbstractDM) end
70100

71-
@for_petsc function DMGetDimension(dm::AbstractDM{$PetscLib})
101+
@for_petsc function getdimension(dm::AbstractDM{$PetscLib})
72102
dim = Ref{$PetscInt}()
73103

74104
@chk ccall(
@@ -129,16 +159,16 @@ function view(::AbstractDM) end
129159
end
130160

131161
"""
132-
DMCreateMatrix(dm::AbstractDM)
162+
creatematrix(dm::AbstractDM)
133163
134164
Generates a matrix from the `dm` object.
135165
136166
# External Links
137167
$(_doc_external("DM/DMCreateMatrix"))
138168
"""
139-
function DMCreateMatrix end
169+
function creatematrix end
140170

141-
@for_petsc function DMCreateMatrix(dm::AbstractDM{$PetscLib})
171+
@for_petsc function creatematrix(dm::AbstractDM{$PetscLib})
142172
mat = Mat{$PetscScalar}(C_NULL)
143173

144174
@chk ccall(
@@ -153,17 +183,17 @@ function DMCreateMatrix end
153183
end
154184

155185
"""
156-
DMCreateLocalVector(dm::AbstractDM)
186+
createlocalvector(dm::AbstractDM)
157187
158188
returns a local vector from the `dm` object.
159189
160190
# External Links
161191
$(_doc_external("DM/DMCreateLocalVector"))
162192
"""
163-
function DMCreateLocalVector end
193+
function createlocalvector end
164194

165-
@for_petsc function DMCreateLocalVector(dm::AbstractDM{$PetscLib})
166-
vec = Vec{$PetscScalar}(C_NULL)
195+
@for_petsc function createlocalvector(dm::AbstractDM{$PetscLib})
196+
vec = DMLocalVec(C_NULL, dm)
167197

168198
@chk ccall(
169199
(:DMCreateLocalVector, $petsc_library),
@@ -177,17 +207,17 @@ function DMCreateLocalVector end
177207
end
178208

179209
"""
180-
DMCreateGlobalVector(dm::DM; write::Bool = true, read::Bool = true)
210+
createglobalvector(dm::DM; write::Bool = true, read::Bool = true)
181211
182212
returns a global vector from the `dm` object.
183213
184214
# External Links
185215
$(_doc_external("DM/DMCreateGlobalVector"))
186216
"""
187-
function DMCreateGlobalVector end
217+
function createglobalvector end
188218

189-
@for_petsc function DMCreateGlobalVector(dm::AbstractDM{$PetscLib})
190-
vec = Vec{$PetscScalar}(C_NULL)
219+
@for_petsc function createglobalvector(dm::AbstractDM{$PetscLib})
220+
vec = DMGlobalVec(C_NULL, dm)
191221

192222
@chk ccall(
193223
(:DMCreateGlobalVector, $petsc_library),
@@ -201,31 +231,30 @@ function DMCreateGlobalVector end
201231
end
202232

203233
"""
204-
DMLocalToGlobal!(
205-
dm::AbstractDM
206-
local_vec::AbstractVec,
234+
update!(
235+
global_vec::DMGlobalVec,
236+
local_vec::DMLocalVec,
207237
mode::InsertMode,
208-
global_vec::AbstractVec,
209238
)
210239
211-
Updates `global_vec` from `local_vec` using the `dm` with insert `mode`
240+
Updates `global_vec` from `local_vec` with insert `mode`
212241
213242
# External Links
214243
$(_doc_external("DM/DMLocalToGlobal"))
215244
"""
216-
function DMLocalToGlobal! end
245+
update!(::DMGlobalVec, ::DMLocalVec, ::InsertMode)
217246

218-
@for_petsc function DMLocalToGlobal!(
219-
dm::AbstractDM{$PetscLib},
220-
local_vec::AbstractVec,
247+
@for_petsc function update!(
248+
global_vec::DMGlobalVec{$PetscLib},
249+
local_vec::DMLocalVec{$PetscLib},
221250
mode::InsertMode,
222-
global_vec::AbstractVec,
223251
)
252+
@assert local_vec.dm === global_vec.dm
224253
@chk ccall(
225254
(:DMLocalToGlobal, $petsc_library),
226255
PetscErrorCode,
227256
(CDM, CVec, InsertMode, CVec),
228-
dm,
257+
local_vec.dm,
229258
local_vec,
230259
mode,
231260
global_vec,
@@ -235,31 +264,30 @@ function DMLocalToGlobal! end
235264
end
236265

237266
"""
238-
DMGlobalToLocal!(
239-
dm::DM
240-
global_vec::AbstractVec,
267+
update!(
268+
local_vec::DMLocalVec,
269+
global_vec::DMGlobalVec,
241270
mode::InsertMode,
242-
local_vec::AbstractVec,
243271
)
244272
245-
Updates `local_vec` from `global_vec` using the `dm` with insert `mode`
273+
Updates `local_vec` from `global_vec` with insert `mode`
246274
247275
# External Links
248276
$(_doc_external("DM/DMGlobalToLocal"))
249277
"""
250-
function DMGlobalToLocal! end
278+
update!(::DMLocalVec, ::DMGlobalVec, ::InsertMode)
251279

252-
@for_petsc function DMGlobalToLocal!(
253-
dm::AbstractDM{$PetscLib},
254-
global_vec::AbstractVec,
280+
@for_petsc function update!(
281+
local_vec::DMLocalVec{$PetscLib},
282+
global_vec::DMGlobalVec{$PetscLib},
255283
mode::InsertMode,
256-
local_vec::AbstractVec,
257284
)
285+
@assert local_vec.dm === global_vec.dm
258286
@chk ccall(
259287
(:DMGlobalToLocal, $petsc_library),
260288
PetscErrorCode,
261289
(CDM, CVec, InsertMode, CVec),
262-
dm,
290+
global_vec.dm,
263291
global_vec,
264292
mode,
265293
local_vec,
@@ -269,18 +297,16 @@ function DMGlobalToLocal! end
269297
end
270298

271299
"""
272-
DMGetCoordinateDM(
273-
dm::AbstractDM
274-
)
300+
getcoordinateDM(dm::AbstractDM)
275301
276302
Create a `coord_dm` for the coordinates of `dm`.
277303
278304
# External Links
279305
$(_doc_external("DM/DMGetCoordinateDM"))
280306
"""
281-
function DMGetCoordinateDM end
307+
function getcoordinateDM end
282308

283-
@for_petsc function DMGetCoordinateDM(dm::AbstractDM{$PetscLib})
309+
@for_petsc function getcoordinateDM(dm::AbstractDM{$PetscLib})
284310
coord_dm = empty(dm)
285311
@chk ccall(
286312
(:DMGetCoordinateDM, $petsc_library),
@@ -296,19 +322,17 @@ function DMGetCoordinateDM end
296322
end
297323

298324
"""
299-
DMGetCoordinatesLocal(
300-
dm::AbstractDM
301-
)
325+
getcoordinateslocal(dm::AbstractDM)
302326
303327
Gets a local vector with the coordinates associated with `dm`.
304328
305329
# External Links
306330
$(_doc_external("DM/DMGetCoordinatesLocal"))
307331
"""
308-
function DMGetCoordinatesLocal end
332+
function getcoordinateslocal end
309333

310-
@for_petsc function DMGetCoordinatesLocal(dm::AbstractDM{$PetscLib})
311-
coord_vec = Vec{$PetscScalar}(C_NULL)
334+
@for_petsc function getcoordinateslocal(dm::AbstractDM{$PetscLib})
335+
coord_vec = DMLocalVec(C_NULL, dm)
312336
@chk ccall(
313337
(:DMGetCoordinatesLocal, $petsc_library),
314338
PetscErrorCode,

0 commit comments

Comments
 (0)