Reinitialization methods.
More...
|
subroutine | mod_lsm_reinitialization_cp::compute_levelset_reinitialization_cp (my_levelset) |
| Compute the reinitialization using the closest points method.
|
|
subroutine | mod_lsm_reinitialization_hj::integrate_filtered_hj_equation (phi_0, phi_n, band, filter, dtau, my_levelset) |
| Integrate with Euler time scheme the HJ equation.
|
|
subroutine | mod_lsm_reinitialization_hj::integrate_filtered_hj_equation_rk2 (phi_0, phi_n, band, filter, dtau, my_levelset) |
| Integrate with RK2 time scheme the HJ equation.
|
|
subroutine | mod_lsm_reinitialization_hj::integrate_filtered_hj_equation_rk2_tvd (phi_0, phi_n, band, filter, dtau, my_levelset) |
| Integrate with TVD RK2 time scheme the HJ equation.
|
|
This module provides several methods for resolving the reinitialization problem for level sets.
Two principal methods have been developed:
- The Hamilton-Jacobi (HJ) equation ;
- The Closest Point algorithm.
Among the first, a supplementary method has been added in order to enhance the precision, consisting in the constrained reinitialization scheme (HCR2).
These methods are accessible through the LS parameters and the UI.
◆ compute_levelset_reinitialization_cp()
subroutine mod_lsm_reinitialization_cp::compute_levelset_reinitialization_cp |
( |
class(t_levelset_cp), intent(inout) | my_levelset | ) |
|
The level set is reinitialization thanks to the Closest Points method. The reinitialization is by default 4th order (using 4th order derivatives and 4th order interpolation). Outlines:
- Initialize partitionning of the domain
- Detection of numerical and inherent kink
- Smoothing numerical kink
- Compute closest point to the interface
- Use the computed closest point to the interface to reinitialize the level set & & when, for a point on the interface isn't perturbed by a nearby kink
◆ integrate_filtered_hj_equation()
subroutine mod_lsm_reinitialization_hj::integrate_filtered_hj_equation |
( |
double precision, dimension(:,:,:), intent(in) | phi_0, |
|
|
double precision, dimension(:,:,:), intent(in) | phi_n, |
|
|
integer, dimension(:,:,:), intent(in) | band, |
|
|
double precision, dimension(:,:,:), intent(in) | filter, |
|
|
double precision, intent(in) | dtau, |
|
|
class(t_levelset), intent(inout) | my_levelset ) |
- Note
- Before we were using WENO5 when the band==1 and WENO3 in the band==2 (nothing elsewhere) but this seems to be very unstable. Now we are only using WENO5 in the whole band.
◆ integrate_filtered_hj_equation_rk2()
subroutine mod_lsm_reinitialization_hj::integrate_filtered_hj_equation_rk2 |
( |
double precision, dimension(:,:,:), intent(in) | phi_0, |
|
|
double precision, dimension(:,:,:), intent(in) | phi_n, |
|
|
integer, dimension(:,:,:), intent(in) | band, |
|
|
double precision, dimension(:,:,:), intent(in) | filter, |
|
|
double precision, intent(in) | dtau, |
|
|
class(t_levelset), intent(inout) | my_levelset ) |
- Note
- Before we were using WENO5 when the band==1 and WENO3 in the band==2 (nothing elsewhere) but this seems to be very unstable. Now we are only using WENO5 in the whole band.
◆ integrate_filtered_hj_equation_rk2_tvd()
subroutine mod_lsm_reinitialization_hj::integrate_filtered_hj_equation_rk2_tvd |
( |
double precision, dimension(:,:,:), intent(in) | phi_0, |
|
|
double precision, dimension(:,:,:), intent(in) | phi_n, |
|
|
integer, dimension(:,:,:), intent(in) | band, |
|
|
double precision, dimension(:,:,:), intent(in) | filter, |
|
|
double precision, intent(in) | dtau, |
|
|
class(t_levelset), intent(inout) | my_levelset ) |
- Note
- Before we were using WENO5 when the band==1 and WENO3 in the band==2 (nothing elsewhere) but this seems to be very unstable. Now we are only using WENO5 in the whole band.