Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
trixi-framework
GitHub Repository: trixi-framework/Trixi.jl
Path: blob/main/src/solvers/dgsem_t8code/containers.jl
5590 views
1
function reinitialize_containers!(mesh::T8codeMesh, equations, dg::DGSEM, cache)
2
n_cells = ncells(mesh)
3
4
# Re-initialize elements container.
5
@unpack elements = cache
6
resize!(elements, n_cells)
7
init_elements!(elements, mesh, dg.basis)
8
9
# Resize volume integral and related datastructures
10
@unpack volume_integral = dg
11
resize_volume_integral_cache!(cache, mesh, volume_integral, n_cells)
12
reinit_volume_integral_cache!(cache, mesh, dg, volume_integral, n_cells)
13
14
count_required_surfaces!(mesh)
15
16
# Resize interfaces container.
17
@unpack interfaces = cache
18
resize!(interfaces, mesh.ninterfaces)
19
20
# Resize mortars container.
21
@unpack mortars = cache
22
resize!(mortars, mesh.nmortars)
23
24
# Resize boundaries container.
25
@unpack boundaries = cache
26
resize!(boundaries, mesh.nboundaries)
27
28
fill_mesh_info!(mesh, interfaces, mortars, boundaries,
29
mesh.boundary_names)
30
31
return nothing
32
end
33
34
function count_required_surfaces!(mesh::T8codeMesh)
35
counts = count_interfaces(mesh)
36
37
mesh.nmortars = counts.mortars
38
mesh.ninterfaces = counts.interfaces
39
mesh.nboundaries = counts.boundaries
40
41
mesh.nmpimortars = counts.mpi_mortars
42
mesh.nmpiinterfaces = counts.mpi_interfaces
43
44
return counts
45
end
46
47
# Compatibility to `dgsem_p4est/containers.jl`.
48
function count_required_surfaces(mesh::T8codeMesh)
49
return (interfaces = mesh.ninterfaces,
50
mortars = mesh.nmortars,
51
boundaries = mesh.nboundaries,
52
mpi_interfaces = mesh.nmpiinterfaces,
53
mpi_mortars = mesh.nmpimortars)
54
end
55
56
# Compatibility to `dgsem_p4est/containers.jl`.
57
function init_interfaces!(interfaces, elements,
58
mesh::T8codeMesh, basis)
59
# Already computed. Do nothing.
60
return nothing
61
end
62
63
# Compatibility to `dgsem_p4est/containers.jl`.
64
function init_mortars!(mortars, mesh::T8codeMesh)
65
# Already computed. Do nothing.
66
return nothing
67
end
68
69
# Compatibility to `dgsem_p4est/containers.jl`.
70
function init_boundaries!(boundaries, mesh::T8codeMesh)
71
# Already computed. Do nothing.
72
return nothing
73
end
74
75