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. | |
Advection methods for level sets.
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 ) |
Compute the \( \vec{u} \cdot \nabla \phi \) term with a WENO5 scheme.
| [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 ) |
Solve the advection with various advection schemes for the Level Set representation.
| 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 ) |
Solve the advection with various advection schemes for the Level Set standard (Eulerian) representation.
| [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 with a WENO5-Euler scheme.
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 with a WENO5-NSSP32 scheme.
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 with a WENO5-NSSP53 scheme.
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 with a WENO5-RK2-TVD (with given velocity at next time step) scheme.
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 \) |