Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
ae505e8
added IndicatorPositional to enable refinment based on rule(x,t)
Mar 24, 2026
7eca66a
corrected minior duplication, added testcase later used for MPI Morta…
Mar 24, 2026
e14b7c4
corrected spelling
Mar 24, 2026
196066f
Update src/solvers/dgsem/indicators.jl
TJP-Karpowski Mar 25, 2026
97e17d5
Update src/solvers/dgsem/indicators.jl
TJP-Karpowski Mar 25, 2026
1c1d719
Update src/solvers/dgsem/indicators.jl
TJP-Karpowski Mar 25, 2026
29df31a
Update src/solvers/dgsem/indicators.jl
TJP-Karpowski Mar 25, 2026
1fea406
Update src/solvers/dgsem/indicators.jl
TJP-Karpowski Mar 25, 2026
5429087
changed behaviour to take maximum of node based evaluation
Mar 25, 2026
2079e92
Merge branch 'main' into IndicatorPositional
TJP-Karpowski Mar 25, 2026
9f230d1
Update src/solvers/dgsem/indicators.jl
DanielDoehring Mar 26, 2026
a2a8423
Update src/solvers/dgsem_tree/indicators_1d.jl
TJP-Karpowski Mar 26, 2026
ec2603f
Update src/solvers/dgsem_tree/indicators_2d.jl
TJP-Karpowski Mar 26, 2026
a424b88
Update src/solvers/dgsem_tree/indicators_3d.jl
TJP-Karpowski Mar 26, 2026
f4c7310
enabled MPI for 2D parabolic system on P4est mesh (from present main)
Mar 26, 2026
e7fcdb8
extended indicator to allow also solution dependent updates, inidial …
Mar 26, 2026
2a783ae
Merge branch 'main' into IndicatorPositional
TJP-Karpowski Mar 26, 2026
d88ab1b
corrected dimension mismatch indicator_3d, added 1D testcase by excha…
Mar 26, 2026
0799f75
Merge branch 'IndicatorPositional' of github.com:TJP-Karpowski/Trixi.…
Mar 26, 2026
e4d8dc4
Merge branch 'main' into MPI_P4est_Parabolic2D_clean
TJP-Karpowski Mar 26, 2026
99bacc8
Merge branch 'IndicatorPositional' into MPI_P4est_Parabolic2D_nonconf…
Mar 26, 2026
44e783b
mortar addition in progres
Mar 26, 2026
5f77917
adapted naming: viscous -> parabolic
Mar 26, 2026
b0edfb6
adapted naming for mortars: viscous -> parabolic
Mar 26, 2026
5deb5ee
2D MPI P4est parabolic system with mortar treatment, AMR and load bal…
Mar 26, 2026
9fc64dc
added AMR load balancing testcase
Mar 26, 2026
e7308dc
Merge branch 'main' into MPI_P4est_Parabolic2D_nonconforming
TJP-Karpowski Apr 3, 2026
cf9a959
correctly merging
Apr 4, 2026
d16b0e6
removed testcases
Apr 4, 2026
0582d6b
merge with main (conforming MPI 2D)
Apr 20, 2026
72ff6f9
improved comments
Apr 20, 2026
d16f05b
Merge branch 'main' into MPI_P4est_Parabolic2D_nonconforming
TJP-Karpowski Apr 20, 2026
25b85e3
Apply suggestions from code review
TJP-Karpowski Apr 20, 2026
293ad5c
Merge branch 'main' into MPI_P4est_Parabolic2D_nonconforming
TJP-Karpowski Apr 22, 2026
f0fc06f
Merge branch 'main' into MPI_P4est_Parabolic2D_nonconforming
TJP-Karpowski Apr 24, 2026
a76da04
added testcase for inverted index
Apr 24, 2026
3f5b240
Merge branch 'MPI_P4est_Parabolic2D_nonconforming' of github.com:TJP-…
Apr 24, 2026
73cc679
removed one of 2 AMR tests
Apr 24, 2026
7e2b036
Merge branch 'main' into MPI_P4est_Parabolic2D_nonconforming
sloede Apr 25, 2026
841eb3a
lossend tolerances
Apr 27, 2026
8b632a5
Merge branch 'MPI_P4est_Parabolic2D_nonconforming' of github.com:TJP-…
Apr 27, 2026
2c04cf8
Merge branch 'main' into MPI_P4est_Parabolic2D_nonconforming
TJP-Karpowski Apr 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
using OrdinaryDiffEqLowStorageRK
using Trixi

###############################################################################
# semidiscretization of the linear advection equation

advection_velocity = (3.0, 3.0)
diffusivity() = 5.0e-2
equations = LinearScalarAdvectionEquation2D(advection_velocity)
equations_parabolic = LaplaceDiffusion2D(diffusivity(), equations)

function initial_condition_gauss_static(x, t, equations)
# center of the Gaussian (choose safely inside your domain)
x0 = -0.5
y0 = 1.5

# width (smaller = more localized)
sigma = 0.175

# Gaussian
r2 = (x[1] - x0)^2 + (x[2] - y0)^2
u = 2 * exp(-r2 / (2 * sigma^2))

return SVector(u)
end

initial_condition = initial_condition_gauss_static

boundary_condition = BoundaryConditionDirichlet((x, t, equations) -> SVector(0.0))
boundary_conditions = (Bottom = boundary_condition,
Right = boundary_condition,
Top = boundary_condition,
Left = boundary_condition)
boundary_conditions_parabolic = boundary_conditions

solver = DGSEM(polydeg = 3, surface_flux = flux_lax_friedrichs)

# Unstructured mesh with inverted indexing of the nodes
# Specifically tests that the node indexing in the mpi parabolic solver is consistent
mesh_file = Trixi.download("https://gist.githubusercontent.com/andrewwinters5000/3e7dac35eeadc24739ea29619f78b8d2/raw/ecc29e82be69c656217dc878821917850c51e41d/mesh_wobbly_channel.inp",
joinpath(@__DIR__, "mesh_wobbly_channel.inp"))

mesh = P4estMesh{2}(mesh_file, polydeg = 3,
initial_refinement_level = 1)

semi = SemidiscretizationHyperbolicParabolic(mesh,
(equations, equations_parabolic),
initial_condition, solver;
solver_parabolic = ParabolicFormulationBassiRebay1(),
boundary_conditions = (boundary_conditions,
boundary_conditions_parabolic))

###############################################################################
# ODE solvers, callbacks etc.

tspan = (0.0, 1.0)
ode = semidiscretize(semi, tspan)

summary_callback = SummaryCallback()

analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval = analysis_interval,
extra_analysis_integrals = (entropy,))

alive_callback = AliveCallback(analysis_interval = analysis_interval)

save_restart = SaveRestartCallback(interval = 100,
save_final_restart = true)

save_solution = SaveSolutionCallback(interval = 100,
save_initial_solution = true,
save_final_solution = true,
solution_variables = cons2prim)

amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable = first),
base_level = 1,
med_level = 2, med_threshold = 0.05,
max_level = 3, max_threshold = 0.3)
amr_callback = AMRCallback(semi, amr_controller,
interval = 5,
adapt_initial_condition = true,
adapt_initial_condition_only_refine = true)

callbacks = CallbackSet(summary_callback,
analysis_callback, alive_callback,
save_restart, save_solution,
amr_callback);

###############################################################################
# run the simulation
ode_alg = RDPK3SpFSAL49()
sol = solve(ode, ode_alg;
dt = 1e-5, # solve needs some value here but it will be overwritten by the stepsize_callback
ode_default_options()..., callback = callbacks);
2 changes: 2 additions & 0 deletions src/callbacks_step/amr.jl
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,8 @@ function (amr_callback::AMRCallback)(u_ode::AbstractVector, mesh::P4estMesh,
partition!(mesh)
rebalance_solver!(u_ode, mesh, equations, dg, cache,
old_global_first_quadrant)
@unpack parabolic_container = cache_parabolic
resize!(parabolic_container, equations, dg, cache)
end
end

Expand Down
Loading
Loading