0.6.0
Loading...
Searching...
No Matches
mod_mof2d_backward_advection Module Reference

Data Types

type  t_mof_structure
 Lightweight t_phase_geometry structure adapted to MOF. More...
 

Functions/Subroutines

subroutine, public mof2d_backward_advection (mof_phases, boundary_condition, velocity1, velocity2, time_step)
 Advection of the MOF phases using the backward advection algorithm.
 
subroutine mof2d_classic_intersection (mof_next, advected_cell, cell_interval, mof_phases, velocity1, velocity_half, time_step, i, j)
 Compute volume and centroid from cell intersection without filaments.
 
subroutine mof2d_filament_intersection (mof_next, advected_cell, cell_interval, mof_phases, velocity1, velocity_half, time_step, i, j)
 Compute volume and centroid from cell intersection with filaments.
 
subroutine mof2d_generate_filament_groups (filament, list_intersection)
 Generate the filament list from the intersected polygons.
 
subroutine mof2d_intersect_cells (advected_cell, cell_interval, mof_phases, velocity1, velocity_half, time_step, volume, momentum)
 Intersect the backward advected cell with all the sourrounding cells.
 
subroutine mof2d_intersect_cells_with_list (list_intersection, advected_cell, cell_interval, mof_phases)
 Intersect the cells and keep the intersected polygons.
 
pure subroutine mof2d_advect_rk2 (point, i, j, velocity_start, velocity_half, time_step, advected_point)
 Advect a point using a second order Runge-Kutta 2 scheme.
 
integer pure function mof2d_locate_cell (x, guess, coord)
 Locate the maximal index in a list of coordinates which is the closest and inferior to a given coordinate.
 
pure subroutine mof2d_interpolate_velocity (point, velocity, point_velocity, i, j)
 Interpolate velocity on a point in a cell.
 

Function/Subroutine Documentation

◆ mof2d_advect_rk2()

pure subroutine mod_mof2d_backward_advection::mof2d_advect_rk2 ( double precision, dimension(2), intent(in) point,
integer, intent(in) i,
integer, intent(in) j,
type(t_face_field), intent(in) velocity_start,
type(t_face_field), intent(in) velocity_half,
double precision, intent(in) time_step,
double precision, dimension(2), intent(out) advected_point )
private

Advect a point using a second order Runge-Kutta 2 scheme.

Parameters
[in]pointCoordinates of the point to advect
[in]i,jCoordinates of the cell containing the point
[in]velocity_startVelocity at the beginning of the time step
[in]velocity_halfVelocity in the middle of the time step
[in]time_stepTime step
[out]advected_pointCoordinated of the advected point

◆ mof2d_classic_intersection()

subroutine mod_mof2d_backward_advection::mof2d_classic_intersection ( type(t_mof_structure), dimension(:), intent(inout) mof_next,
type(t_polygon), intent(in) advected_cell,
integer, dimension(2,2), intent(in) cell_interval,
type(t_phase_geometry), dimension(:), intent(in) mof_phases,
type(t_face_field), intent(in) velocity1,
type(t_face_field), intent(in) velocity_half,
double precision, intent(in) time_step,
integer, intent(in) i,
integer, intent(in) j )
private

Compute volume and centroid from cell intersection without filaments.

Parameters
[in,out]mof_nextNext value of MOF phases
[in]advected_cellAdvected cell
[in]cell_intervalLower and upper bounds of the surrounding cells
[in]mof_phasesList of the MOF phases
[in]velocity1Velocity at the beginning of the time step
[in]velocity_halfVelocity in the middle of the time step
[in]time_stepTime step
[in]i,jCell coordinates

◆ mof2d_filament_intersection()

subroutine mod_mof2d_backward_advection::mof2d_filament_intersection ( type(t_mof_structure), dimension(:), intent(inout) mof_next,
type(t_polygon), intent(in) advected_cell,
integer, dimension(2,2), intent(in) cell_interval,
type(t_phase_geometry), dimension(:), intent(in) mof_phases,
type(t_face_field), intent(in) velocity1,
type(t_face_field), intent(in) velocity_half,
double precision, intent(in) time_step,
integer, intent(in) i,
integer, intent(in) j )
private

Compute volume and centroid from cell intersection with filaments.

Parameters
[in,out]mof_nextNext value of MOF phases
[in]advected_cellAdvected cell
[in]cell_intervalLower and upper bounds of the surrounding cells
[in]mof_phasesList of the MOF phases
[in]velocity1Velocity at the beginning of the time step
[in]velocity_halfVelocity in the middle of the time step
[in]time_stepTime step
[in]i,jCell coordinates

◆ mof2d_generate_filament_groups()

subroutine mod_mof2d_backward_advection::mof2d_generate_filament_groups ( type(t_mof_filament_list), dimension(:), intent(out) filament,
type(t_polygon_list), dimension(:), intent(inout) list_intersection )
private

Generate the filament list from the intersected polygons.

◆ mof2d_interpolate_velocity()

pure subroutine mod_mof2d_backward_advection::mof2d_interpolate_velocity ( double precision, dimension(2), intent(in) point,
type(t_face_field), intent(in) velocity,
double precision, dimension(2), intent(out) point_velocity,
integer, intent(in) i,
integer, intent(in) j )
private

Interpolate velocity on a point in a cell.

Parameters
[in]pointcoordinates of the point
[in]velocityvelocity
[out]point_velocityinterpolation of the velocity on the point
[in]i,jcoordinates of the CELL containing the point

◆ mof2d_intersect_cells()

subroutine mod_mof2d_backward_advection::mof2d_intersect_cells ( type(t_polygon), intent(in) advected_cell,
integer, dimension(2,2), intent(in) cell_interval,
type(t_phase_geometry), dimension(:), intent(in) mof_phases,
type(t_face_field), intent(in) velocity1,
type(t_face_field), intent(in) velocity_half,
double precision, intent(in) time_step,
double precision, dimension(:), intent(out) volume,
double precision, dimension(:,:), intent(out) momentum )
private

Intersect the backward advected cell with all the sourrounding cells.

Parameters
[in]advected_cellAdvected cell
[in]cell_intervalLower and upper bounds of the surrounding cells
[in]mof_phasesList of the MOF phases
[in]velocity1Velocity at the beginning of the time step
[in]velocity_halfVelocity in the middle of the time step
[in]time_stepTime step
[out]volumeIntersected volume
[out]momentumIntersected momentum

◆ mof2d_intersect_cells_with_list()

subroutine mod_mof2d_backward_advection::mof2d_intersect_cells_with_list ( type(t_polygon_list), dimension(:), intent(inout) list_intersection,
type(t_polygon), intent(in) advected_cell,
integer, dimension(2,2), intent(in) cell_interval,
type(t_phase_geometry), dimension(:), intent(in) mof_phases )
private

Intersect the cells and keep the intersected polygons.

Parameters
[in,out]list_intersectionList of intersected polygons.
[in]advected_cellAdvected cell.
[in]cell_intervalList of cells to be intersected.
[in]mof_phasesList of the MOF phases.

◆ mof2d_locate_cell()

integer pure function mod_mof2d_backward_advection::mof2d_locate_cell ( double precision, intent(in) x,
integer, intent(in) guess,
double precision, dimension(:), intent(in) coord )
private

Locate the maximal index in a list of coordinates which is the closest and inferior to a given coordinate.

Parameters
[in]xCoordinate
[in]guessGuess for the index
[in]coordList of coordinates