Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
22 changes: 14 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -243,10 +243,12 @@ jobs:
# all controllers
../build/examples/trixi_controller_simple_c . libelixir_tree1d_advection_basic.jl
../build/examples/trixi_controller_simple_f . libelixir_tree1d_advection_basic.jl
../build/examples/trixi_controller_data_c . libelixir_t8code2d_advection_amr.jl
../build/examples/trixi_controller_data_f . libelixir_t8code2d_advection_amr.jl
../build/examples/trixi_controller_t8code_c . libelixir_t8code2d_advection_amr.jl
../build/examples/trixi_controller_t8code_f . libelixir_t8code2d_advection_amr.jl
../build/examples/trixi_controller_data_load_c . libelixir_t8code2d_euler_tracer_amr.jl
../build/examples/trixi_controller_data_load_f . libelixir_t8code2d_euler_tracer_amr.jl
../build/examples/trixi_controller_data_store_c . libelixir_t8code2d_euler_tracer_amr.jl
../build/examples/trixi_controller_data_store_f . libelixir_t8code2d_euler_tracer_amr.jl
../build/examples/trixi_controller_t8code_c . libelixir_t8code2d_euler_tracer_amr.jl
../build/examples/trixi_controller_t8code_f . libelixir_t8code2d_euler_tracer_amr.jl
../build/examples/trixi_controller_baroclinic_c . libelixir_t8code3d_euler_baroclinic_instability.jl
../build/examples/trixi_controller_baroclinic_f . libelixir_t8code3d_euler_baroclinic_instability.jl
mpirun -n 2 ../build/examples/trixi_controller_mpi_c . libelixir_p4est2d_euler_sedov.jl
Expand Down Expand Up @@ -275,10 +277,14 @@ jobs:
"../build/examples/trixi_controller_simple_c ." \
"../build/examples/trixi_controller_simple_f" \
"../build/examples/trixi_controller_simple_f ." \
"../build/examples/trixi_controller_data_c" \
"../build/examples/trixi_controller_data_c ." \
"../build/examples/trixi_controller_data_f" \
"../build/examples/trixi_controller_data_f ." \
"../build/examples/trixi_controller_data_load_c" \
"../build/examples/trixi_controller_data_load_c ." \
"../build/examples/trixi_controller_data_load_f" \
"../build/examples/trixi_controller_data_load_f ." \
"../build/examples/trixi_controller_data_store_c" \
"../build/examples/trixi_controller_data_store_c ." \
"../build/examples/trixi_controller_data_store_f" \
"../build/examples/trixi_controller_data_store_f ." \
"../build/examples/trixi_controller_t8code_c" \
"../build/examples/trixi_controller_t8code_c ." \
"../build/examples/trixi_controller_t8code_f" \
Expand Down
2 changes: 1 addition & 1 deletion LibTrixi.jl/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Trixi = "a7f1ee26-1774-49b1-8366-f1abc58fbfcb"
MPI = "0.20.13"
OrdinaryDiffEq = "6.53.2"
Pkg = "1.8"
Trixi = "0.9.12, 0.10, 0.11, 0.12, 0.13"
Trixi = "0.11.12, 0.12, 0.13"
julia = "1.8"

[preferences.OrdinaryDiffEq]
Expand Down
83 changes: 0 additions & 83 deletions LibTrixi.jl/examples/libelixir_t8code2d_advection_amr.jl

This file was deleted.

109 changes: 109 additions & 0 deletions LibTrixi.jl/examples/libelixir_t8code2d_euler_tracer_amr.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
using LibTrixi
using OrdinaryDiffEq
using Trixi

# The function to create the simulation state needs to be named `init_simstate`
function init_simstate()

###############################################################################
# initial condition: density wave + tracer blob

function initial_condition_wave_blob(x, t,
equations::PassiveTracerEquations)
# Initial condition for flow equations: density wave
v1 = 0.1
v2 = 0.2
rho = 1 + 0.5 * sinpi(2 * (x[1] + x[2] - t * (v1 + v2)))
rho_v1 = rho * v1
rho_v2 = rho * v2
p = 20
rho_e = p / (equations.flow_equations.gamma - 1) + 0.5 * rho * (v1^2 + v2^2)

# Initial condition for tracers: blob in fraction of density
tracer = 0.2 * exp(-20 * (x[1] + 0.45)^2 - 10 * (x[2] - 0.15)^2)

return SVector(rho, rho_v1, rho_v2, rho_e, rho * tracer)
end

###############################################################################
# semidiscretization of the compressible Euler equations

gamma = 1.4
flow_equations = CompressibleEulerEquations2D(gamma)
equations = PassiveTracerEquations(flow_equations, n_tracers = 1)

# Create DG solver with polynomial degree = 5, Ranocha flux, and derived tracer flux
solver = DGSEM(polydeg = 5, surface_flux = FluxTracerEquationsCentral(flux_ranocha))

coordinates_min = (-1.0, -1.0) # minimum coordinates (min(x), min(y))
coordinates_max = ( 1.0, 1.0) # maximum coordinates (max(x), max(y))
trees_per_dimension = (4, 4) # initial resolution (without refinement)
mesh = T8codeMesh(trees_per_dimension, polydeg = 1,
coordinates_min = coordinates_min, coordinates_max = coordinates_max,
initial_refinement_level = 1)

# Create spatial discretization
semi = SemidiscretizationHyperbolic(mesh, equations, initial_condition_wave_blob,
solver)

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

# Create ODE problem with time span from 0.0 to 2.0
ode = semidiscretize(semi, (0.0, 2.0));

# SummaryCallback prints a summary of the simulation setup and recorded performance data
summary_callback = SummaryCallback()

# AnalysisCallback analyses the solution at regular intervals and prints the results
analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval=analysis_interval)

# AliveCallback prints a one line summary at regular intervals
alive_callback = AliveCallback(analysis_interval=analysis_interval)

# StepsizeCallback handles the re-calculation of the maximum Δt after each time step
stepsize_callback = StepsizeCallback(cfl = 1.0)

# AMRCallback triggers adaptive mesh refinement
@inline function first_tracer(u, equations::PassiveTracerEquations)
return Trixi.tracers(u, equations)[1]
end
amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first_tracer),
base_level=1,
med_level=2, med_threshold=0.05,
max_level=2, max_threshold=0.05)
amr_callback = AMRCallback(semi, amr_controller,
interval=50,
adapt_initial_condition=true,
adapt_initial_condition_only_refine=true)

# SaveSolutionCallback writes the solution at regular intervals
save_solution = SaveSolutionCallback(interval=50,
save_initial_solution=true,
save_final_solution=true,
solution_variables = cons2prim)

# CallbackSet collects all callbacks
callbacks = CallbackSet(summary_callback,
analysis_callback,
alive_callback,
amr_callback,
save_solution,
stepsize_callback)

###############################################################################
# create the time integrator

# OrdinaryDiffEq's `integrator`
integrator = init(ode, CarpenterKennedy2N54(williamson_condition=false),
dt=1.0, # solve needs some value here but it will be overwritten by the stepsize_callback
save_everystep=false, callback=callbacks);

###############################################################################
# Create simulation state

simstate = SimulationState(semi, integrator)

return simstate
end
21 changes: 15 additions & 6 deletions LibTrixi.jl/src/LibTrixi.jl
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,24 @@ export trixi_load_node_reference_coordinates,
export trixi_load_node_weights,
trixi_load_node_weights_cfptr,
trixi_load_node_weights_jl
export trixi_load_primitive_vars,
trixi_load_primitive_vars_cfptr,
trixi_load_primitive_vars_jl
export trixi_load_element_averaged_primitive_vars,
trixi_load_element_averaged_primitive_vars_cfptr,
trixi_load_element_averaged_primitive_vars_jl
export trixi_load_conservative_var,
trixi_load_conservative_var_cfptr,
trixi_load_conservative_var_jl
export trixi_load_primitive_var,
trixi_load_primitive_var_cfptr,
trixi_load_primitive_var_jl
export trixi_load_element_averaged_primitive_var,
trixi_load_element_averaged_primitive_var_cfptr,
trixi_load_element_averaged_primitive_var_jl
export trixi_store_conservative_var,
trixi_store_conservative_var_cfptr,
trixi_store_conservative_var_jl
export trixi_register_data,
trixi_register_data_cfptr,
trixi_register_data_jl
export trixi_get_conservative_vars_pointer,
trixi_get_conservative_vars_pointer_cfptr,
trixi_get_conservative_vars_pointer_jl
export trixi_version_library,
trixi_version_library_cfptr,
trixi_version_library_jl
Expand Down
Loading
Loading