version 0.6.0
mod_lsm_advect_eulerian_euler Module Reference

The Level Set advection module. More...

Functions/Subroutines

subroutine 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. More...
 
subroutine 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. More...
 
subroutine 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. More...
 
subroutine 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. More...
 
subroutine integrate_euler_forward (phi_tn, dphi_dt, dt, phi_tnp1)
 Integrate in time with a first order explicit Euler scheme. More...
 
subroutine project_velocity_on_normal (velocity, phi, velocity_projected)
 

Detailed Description

Defined the function for advecting a level set with various methods Time is advanced from t^{n}to t^{n+1}.

Function/Subroutine Documentation

◆ integrate_euler_forward()

subroutine mod_lsm_advect_eulerian_euler::integrate_euler_forward ( double precision, dimension(:,:,:), intent(in)  phi_tn,
double precision, dimension(:,:,:), intent(in)  dphi_dt,
double precision, intent(in)  dt,
double precision, dimension(:,:,:), intent(out)  phi_tnp1 
)
Parameters
[in]phi_tnthe field \(\phi\) at time t^{n}
[in]dphi_dtthe field \(\frac{\partial \phi}{\partial t}\) at time \(t_n\)
[in]dtthe time step \(\Delta t\)
[out]phi_tnp1the resulting field

◆ levelset_advect_eulerian_weno5_euler()

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 \)

Parameters
[in,out]levelsetthe level set
[in]velocity_nm1the velocity at time \(t=t_n - \delta t^{n-1}\)
[in]velocity_nthe velocity at time \(t=t_n\)
[in]velocity_np1the velocity at time \(t=t^{n+1}=t^{n} + \delta t^{n}\)
[in]local_timethe local time \(t^{l}\) relative to \(t^n\)
[in]dt_nm1the time step between \(t^{n}\) and \(t^{n-1}\)
[in]dt_nthe time step between \(t^{n+1}\) and \(t^{n}\)
[in]time_stepthe time step \(\delta t\) over which to integrate the levelset: \(t^{l} + \delta t \)

◆ levelset_advect_eulerian_weno5_nssp32()

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 \)

Parameters
[in,out]levelsetthe level set
[in]velocity_nm1the velocity at time \(t=t_n - \delta t^{n-1}\)
[in]velocity_nthe velocity at time \(t=t_n\)
[in]velocity_np1the velocity at time \(t=t^{n+1}=t^{n} + \delta t^{n}\)
[in]local_timethe local time \(t^{l}\) relative to \(t^n\)
[in]dt_nm1the time step between \(t^{n}\) and \(t^{n-1}\)
[in]dt_nthe time step between \(t^{n+1}\) and \(t^{n}\)
[in]time_stepthe time step \(\delta t\) over which to integrate the levelset: \(t^{l} + \delta t \)
Todo:
MCO: the boundary conditions are at time \(t^n\), even during the RK integration!

◆ levelset_advect_eulerian_weno5_nssp53()

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 \)

Parameters
[in,out]levelsetthe level set
[in]velocity_nm1the velocity at time \(t=t_n - \delta t^{n-1}\)
[in]velocity_nthe velocity at time \(t=t_n\)
[in]velocity_np1the velocity at time \(t=t^{n+1}=t^{n} + \delta t^{n}\)
[in]local_timethe local time \(t^{l}\) relative to \(t^n\)
[in]dt_nm1the time step between \(t^{n}\) and \(t^{n-1}\)
[in]dt_nthe time step between \(t^{n+1}\) and \(t^{n}\)
[in]time_stepthe time step \(\delta t\) over which to integrate the levelset: \(t^{l} + \delta t \)

◆ levelset_advect_eulerian_weno5_rk2_tvd()

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 \)

Parameters
[in,out]levelsetthe level set
[in]velocity_nm1the velocity at time \(t=t_n - \delta t^{n-1}\)
[in]velocity_nthe velocity at time \(t=t_n\)
[in]velocity_np1the velocity at time \(t=t^{n+1}=t^{n} + \delta t^{n}\)
[in]local_timethe local time \(t^{l}\) relative to \(t^n\)
[in]dt_nm1the time step between \(t^{n}\) and \(t^{n-1}\)
[in]dt_nthe time step between \(t^{n+1}\) and \(t^{n}\)
[in]time_stepthe time step \(\delta t\) over which to integrate the levelset: \(t^{l} + \delta t \)