Advection methods for level sets. More...
Namespaces | |
module | mod_lsm_advect |
Contains a wrapper for the various advection schemes for the Level Set representation. | |
module | mod_lsm_advect_eulerian |
Contains a wrapper for the various advection schemes for the Level Set standard representation. | |
module | mod_lsm_advect_eulerian_euler |
The Level Set advection module. | |
module | mod_lsm_compute_ugradphi |
Computation of the advection term. | |
module | mod_lsm_compute_ugradphi_conservative |
Computation of the advection with a conservative approach. | |
Functions | |
subroutine | mod_lsm_advect::levelset_advect (ls, dt, velocity_nm1, velocity_n, velocity_np1, dt_nm1, dt_n) |
Solve the advection with various advection schemes for the Level Set representation. | |
subroutine | mod_lsm_advect_eulerian::levelset_advect_eulerian (ls, dt, velocity_nm1, velocity_n, velocity_np1, dt_nm1, dt_n) |
Solve the advection with various advection schemes for the Level Set standard (Eulerian) representation. | |
subroutine | mod_lsm_advect_eulerian_euler::levelset_advect_eulerian_weno5_euler (levelset, velocity_nm1, velocity_n, velocity_np1, local_time, dt_nm1, dt_n, time_step) |
Advect the level set with a WENO5-Euler scheme. | |
subroutine | mod_lsm_advect_eulerian_euler::levelset_advect_eulerian_weno5_rk2_tvd (levelset, velocity_nm1, velocity_n, velocity_np1, local_time, dt_nm1, dt_n, time_step) |
Advect the level set with a WENO5-RK2-TVD (with given velocity at next time step) scheme. | |
subroutine | mod_lsm_advect_eulerian_euler::levelset_advect_eulerian_weno5_nssp32 (levelset, velocity_nm1, velocity_n, velocity_np1, local_time, dt_nm1, dt_n, time_step) |
Advect the level set with a WENO5-NSSP32 scheme. | |
subroutine | mod_lsm_advect_eulerian_euler::levelset_advect_eulerian_weno5_nssp53 (levelset, velocity_nm1, velocity_n, velocity_np1, local_time, dt_nm1, dt_n, time_step) |
Advect the level set with a WENO5-NSSP53 scheme. | |
double precision function | mod_lsm_check_cfl::levelset_compute_time_step_cfl_advection (my_levelset, velocity, velocity_np1, cfl_coef) |
Compute the time step according to the CFL restriction. | |
subroutine | mod_lsm_compute_ugradphi::compute_ugradphi_weno5 (phi, velocity, time_step, ugradphi, band) |
Compute the \( \vec{u} \cdot \nabla \phi \) term with a WENO5 scheme. | |
subroutine | mod_lsm_compute_ugradphi_conservative::compute_ugradphi_weno5_conservative (phi, velocity, time_step, ugradphi, band, flux_type) |
Compute the \( \nabla \cdot ( \vec{u} \phi ) \) conservative term with a WENO5 scheme. | |
This module provides several methods for solving the advection equation for level sets.
subroutine mod_lsm_compute_ugradphi::compute_ugradphi_weno5 | ( | double precision, dimension(nx,ny,nz), intent(in) | phi, |
type(t_face_field), intent(in) | velocity, | ||
double precision, intent(in) | time_step, | ||
double precision, dimension(nx,ny,nz), intent(inout) | ugradphi, | ||
integer, dimension(nx,ny,nz), intent(in) | band ) |
[in] | phi | the level set |
[in] | velocity | the velocity field on faces |
[in,out] | ugradphi | the resulting field |
[in] | band | the band (integers) |
[in] | time_step | the time step (unused, but might be used for high-order fluxes) |
subroutine mod_lsm_advect::levelset_advect | ( | class(t_levelset), intent(inout) | ls, |
double precision, intent(in) | dt, | ||
type(t_face_field), intent(in) | velocity_nm1, | ||
type(t_face_field), intent(in) | velocity_n, | ||
type(t_face_field), intent(in) | velocity_np1, | ||
double precision, intent(in) | dt_nm1, | ||
double precision, intent(in) | dt_n ) |
subroutine mod_lsm_advect_eulerian::levelset_advect_eulerian | ( | class(t_levelset), intent(inout) | ls, |
double precision, intent(in) | dt, | ||
type(t_face_field), intent(in) | velocity_nm1, | ||
type(t_face_field), intent(in) | velocity_n, | ||
type(t_face_field), intent(in) | velocity_np1, | ||
double precision, intent(in) | dt_nm1, | ||
double precision, intent(in) | dt_n ) |
[in,out] | ls | the levelset to advect |
[in] | dt | the time step to advance to, usualy \(dt = t^{n+1} - t^n\) |
[in] | velocity_nm1 | the velocity at time \(t^{n-1}\) |
[in] | velocity_n | the velocity at time \(t^{n}\) |
[in] | velocity_np1 | the velocity at time \(t^{n+1}\) |
[in] | dt_nm1 | the time step between \(dt_nm1 = t^{n} - t^{n-1}\) |
[in] | dt_n | the time step between \(dt_n = t^{n+1} - t^{n}\) |
subroutine mod_lsm_advect_eulerian_euler::levelset_advect_eulerian_weno5_euler | ( | class(t_levelset) | levelset, |
type(t_face_field), intent(in) | velocity_nm1, | ||
type(t_face_field), intent(in) | velocity_n, | ||
type(t_face_field), intent(in) | velocity_np1, | ||
double precision, intent(in) | local_time, | ||
double precision, intent(in) | dt_nm1, | ||
double precision, intent(in) | dt_n, | ||
double precision, intent(in) | time_step ) |
Advect the level set from time \( t^n \) to \(t = t^l + \delta t \)
[in,out] | levelset | the level set |
[in] | velocity_nm1 | the velocity at time \(t=t_n - \delta t^{n-1}\) |
[in] | velocity_n | the velocity at time \(t=t_n\) |
[in] | velocity_np1 | the velocity at time \(t=t^{n+1}=t^{n} + \delta t^{n}\) |
[in] | local_time | the local time \(t^{l}\) relative to \(t^n\) |
[in] | dt_nm1 | the time step between \(t^{n}\) and \(t^{n-1}\) |
[in] | dt_n | the time step between \(t^{n+1}\) and \(t^{n}\) |
[in] | time_step | the time step \(\delta t\) over which to integrate the levelset: \(t^{l} + \delta t \) |
subroutine mod_lsm_advect_eulerian_euler::levelset_advect_eulerian_weno5_nssp32 | ( | class(t_levelset) | levelset, |
type(t_face_field), intent(in) | velocity_nm1, | ||
type(t_face_field), intent(in) | velocity_n, | ||
type(t_face_field), intent(in) | velocity_np1, | ||
double precision, intent(in) | local_time, | ||
double precision, intent(in) | dt_nm1, | ||
double precision, intent(in) | dt_n, | ||
double precision, intent(in) | time_step ) |
Advect the level set from time \( t^n \) to \(t = t^l + \delta t \)
[in,out] | levelset | the level set |
[in] | velocity_nm1 | the velocity at time \(t=t_n - \delta t^{n-1}\) |
[in] | velocity_n | the velocity at time \(t=t_n\) |
[in] | velocity_np1 | the velocity at time \(t=t^{n+1}=t^{n} + \delta t^{n}\) |
[in] | local_time | the local time \(t^{l}\) relative to \(t^n\) |
[in] | dt_nm1 | the time step between \(t^{n}\) and \(t^{n-1}\) |
[in] | dt_n | the time step between \(t^{n+1}\) and \(t^{n}\) |
[in] | time_step | the time step \(\delta t\) over which to integrate the levelset: \(t^{l} + \delta t \) |
subroutine mod_lsm_advect_eulerian_euler::levelset_advect_eulerian_weno5_nssp53 | ( | class(t_levelset) | levelset, |
type(t_face_field), intent(in) | velocity_nm1, | ||
type(t_face_field), intent(in) | velocity_n, | ||
type(t_face_field), intent(in) | velocity_np1, | ||
double precision, intent(in) | local_time, | ||
double precision, intent(in) | dt_nm1, | ||
double precision, intent(in) | dt_n, | ||
double precision, intent(in) | time_step ) |
Advect the level set from time \( t^n \) to \(t = t^l + \delta t \)
[in,out] | levelset | the level set |
[in] | velocity_nm1 | the velocity at time \(t=t_n - \delta t^{n-1}\) |
[in] | velocity_n | the velocity at time \(t=t_n\) |
[in] | velocity_np1 | the velocity at time \(t=t^{n+1}=t^{n} + \delta t^{n}\) |
[in] | local_time | the local time \(t^{l}\) relative to \(t^n\) |
[in] | dt_nm1 | the time step between \(t^{n}\) and \(t^{n-1}\) |
[in] | dt_n | the time step between \(t^{n+1}\) and \(t^{n}\) |
[in] | time_step | the time step \(\delta t\) over which to integrate the levelset: \(t^{l} + \delta t \) |
subroutine mod_lsm_advect_eulerian_euler::levelset_advect_eulerian_weno5_rk2_tvd | ( | class(t_levelset) | levelset, |
type(t_face_field), intent(in) | velocity_nm1, | ||
type(t_face_field), intent(in) | velocity_n, | ||
type(t_face_field), intent(in) | velocity_np1, | ||
double precision, intent(in) | local_time, | ||
double precision, intent(in) | dt_nm1, | ||
double precision, intent(in) | dt_n, | ||
double precision, intent(in) | time_step ) |
Advect the level set from time \( t^n \) to \(t = t^l + \delta t \)
[in,out] | levelset | the level set |
[in] | velocity_nm1 | the velocity at time \(t=t_n - \delta t^{n-1}\) |
[in] | velocity_n | the velocity at time \(t=t_n\) |
[in] | velocity_np1 | the velocity at time \(t=t^{n+1}=t^{n} + \delta t^{n}\) |
[in] | local_time | the local time \(t^{l}\) relative to \(t^n\) |
[in] | dt_nm1 | the time step between \(t^{n}\) and \(t^{n-1}\) |
[in] | dt_n | the time step between \(t^{n+1}\) and \(t^{n}\) |
[in] | time_step | the time step \(\delta t\) over which to integrate the levelset: \(t^{l} + \delta t \) |