version 0.6.0
Todo List
Module add_div_stress_tensor

[AJ]:: Generalize explicit formulation to rectilinear grids. Currently only supports Cartesian grids.

Module cell_scalar
DOC need to be completed on this point
Module containers
documentation
Module doc_discretization_node_level_schemes
Use the type_discrete_stencil for all submodule
Module doc_finite_differences_schemes
MCO: correct this depracated documentation If you have a particular numerical scheme that you want to implement, you should follow the main scheme_builder_non_uniform interface. To do so, simply write a function that simply:
  1. define the fd_scheme's boundaries (thanks to the fd_scheme%declare_stencil member routine)
  2. fill the fd_scheme%stencilweight array
  3. returns the fd_scheme
Module doc_point_interpolation
MCO: do a proper integration of "Lagrange" point interpolation in the new framework. But before I need to test for efficiency matters.
Module implicit_discretization
MCO update the above documentation
Module io_read_global_cell_file
do the routine with MPI IO
Subprogram mod_add_cell_diffusion_term_centered_o2::add_cell_diffusion_term_centered_o2 (matrix, flux_coef, equation_stencil, equation_ls_map)
check order with irregular grids
Subprogram mod_add_face_bc_tangent::add_face_bc_tangent (matrix, rhs, boundary_condition, face_equation_stencil, face_equation_ls_map)
check for irregular mesh
Subprogram mod_add_face_bc_tangent_noghost::add_face_bc_tangent_noghost (matrix, rhs, boundary_condition, face_equation_stencil, face_equation_ls_map)
check for irregular mesh
Subprogram mod_apply_cell_diffusion_scheme::apply_cell_diffusion_o2_centered_scheme (face_diffusion_coefficient, matrix_line, ns, i, j, k, extra_inside_gradient_coef2)
check order with irregular grids
Subprogram mod_compute_cell_advection_term_exp_semi_lagrangian::compute_cell_advection_term_exp_semi_lagrangian (velocity, time_step, scalar, flux_type, directions, divut)

MCO: 3rd dimension

MCO: deal with boundaries

MCO: correct with reconstruction of the field

MCO: question the precision with Eulerian vs RK schemes

MCO: deal with splitted method (with "directions")

Subprogram mod_compute_cell_cons_advection_term_exp_generic_weno::compute_cell_advection_term_explicit_weno3_fd (velocity, scalar, divut)
[AJ]: Generalize for rectilinear grids. Only supports Cartesian grids.
Subprogram mod_compute_cell_cons_advection_term_exp_generic_weno::compute_cell_advection_term_explicit_weno5_fd (velocity, scalar, divut)
[AJ]: Generalize for rectilinear grids. Only supports Cartesian grids.
Subprogram mod_compute_cell_diffusion_term_explicit_centered::compute_cell_diffusion_term_explicit_centered_o2 (div_grad_phi, phi, flux_coef)

check order with irregular grids

Subprogram mod_compute_cell_diffusion_term_explicit_centered::compute_cell_diffusion_term_explicit_centered_o4 (div_grad_phi, phi, flux_coef)
[AJ] Generalize \( 4^{th} \) order scheme for rectilinear grids.
Subprogram mod_compute_div_u_psi_term_explicit_generic_fast_weno::compute_div_u_psi_term_explicit_generic_fast_weno (psi, velocity, dt, flux_type, directions, divupsi, weno_scheme_backward, weno_scheme_forward)
MCO: use the mean face value for the velocity at orthogonal faces
Subprogram mod_compute_div_u_psi_term_explicit_generic_fast_weno::compute_div_u_psi_term_generic_fast_weno_godunov (psi, velocity, dt, flux_type, directions, divupsi, weno_scheme_backward, weno_scheme_forward)
MCO: use the mean face value for the velocity at orthogonal faces
Subprogram mod_compute_div_u_psi_term_explicit_generic_fast_weno::compute_div_u_psi_term_generic_fast_weno_upwind (psi, velocity, dt, flux_type, directions, divupsi, weno_scheme_backward, weno_scheme_forward)
MCO: use the mean face value for the velocity at orthogonal faces
Subprogram mod_compute_div_u_psi_term_explicit_generic_weno::compute_div_u_psi_term_explicit_generic_weno (psi, velocity, dt, flux_type, directions, divupsi, weno_scheme_backward, weno_scheme_forward)
MCO: use the mean face value for the velocity at orthogonal faces
Subprogram mod_compute_div_u_psi_term_explicit_generic_weno::compute_face_advection_term_explicit_weno3_fd (velocityL, velocityR, advec_explicit)
[AJ]: Generalize for rectilinear grids. Only supports Cartesian grids.
Subprogram mod_compute_div_u_psi_term_explicit_generic_weno::compute_face_advection_term_explicit_weno5_fd (velocityL, velocityR, advec_explicit)
[AJ]: Generalize for rectilinear grids. Only supports Cartesian grids.
Subprogram mod_compute_stress_tensor::compute_stress_tensor (stress_tensor, velocity, viscosity)
extrapolation on ghost boundary cells
Subprogram mod_compute_stress_tensor_divergence::compute_stress_tensor_divergence (stress_tensor, stress_tensor_divergence)
extrapolation on ghost boundary cells
Subprogram mod_discretize_cell_advection_term::discretize_cell_advection_term (matrix, coefficient, divergence, equation_advection_term_discretization_type, equation_advection_term_scheme, equation_has_div_u_advection_term, equation_has_immersed_boundaries, equation_ib_has_one_sided_inner_discretization, equation_ib_inner_discretization_order, equation_stencil, time_step_n, time_step, equation_cfl_cell_advection, scalar_field_n, equation_explicit_time_order_discretization, flux_type, boundary_condition, equation_ls_map, velocity_nm1, velocity_n, velocity_np1, work_cell_field, equation_advection_term_splitting_scheme, equation_splitting_time_coef, directional_splitting, ibc_variable, equation_isd_target)
Consider velocity interpolation when STRETCHED RECTILINEAR MESH are used.
Module mod_discretize_cell_explicit_diffusion_term_o2
to be improved for 1st/2nd order ibm.
Subprogram mod_discretize_gravity_term::discretize_gravity_term (face_gravity_term, density_gravity_term_boussinesq_face, density_face_n, density_face_np1, density_face_star, gravity_vector, discretization_method, is_boussinesq_approximation)
Replace 'density_gravity_face' by a more practical strategy
Subprogram mod_explicit_add_cell_bc::explicit_add_cell_bc (scalar, boundary_condition)
MCO: do better extrapolation (not sequential)
Subprogram mod_explicit_add_cell_bc_nh::explicit_add_cell_bc_nh (scalar)
MCO: unalloc bc_value
Subprogram mod_extrapolate_cells_outside_boundaries::extrapolate_cells_outside_boundaries (field, fd_order)
MCO Deal with corners (currently covered by other dimensions)
Subprogram mod_extrapolate_cells_outside_boundaries::extrapolate_cells_outside_boundaries_generic (field, backward_scheme, forward_scheme)
MCO Deal with corners (currently covered by other dimensions)
Subprogram mod_extrapolate_faces_outside_boundaries::extrapolate_faces_outside_boundaries (field, fd_order)
MCO Deal with corners (currently covered by other dimensions)
Subprogram mod_extrapolate_faces_outside_boundaries::extrapolate_faces_outside_boundaries_generic (field, backward_scheme, forward_scheme)
MCO Deal with corners (currently covered by other dimensions)
Subprogram mod_extrapolate_faces_to_faces::extrapolate_faces_to_faces (field, scheme, axis, index)
MCO evaluate the efficiency of the use of field(:,index+schemedir,:)
Subprogram mod_finalize_cell_linear_system::finalize_cell_linear_system (matrix, rhs, stencil_size, equation_ls_map)
improve unused nodes values
Subprogram mod_finalize_face_linear_system::finalize_face_linear_system (matrix, rhs, stencil_size, equation_face_ls_map)
improve unused nodes values (extrapolation)
Module mod_finite_differences_scheme_fifth_o1
MCO: introduce variable steps
Module mod_finite_differences_scheme_fifth_o2
MCO: introduce variable steps
Module mod_finite_differences_scheme_first_o5
MCO: introduce variable steps
Module mod_finite_differences_scheme_first_o6
MCO: introduce variable steps
Subprogram mod_finite_differences_scheme_fourth_o1::t_fd_scheme_fourth_o1_backward_fill (self, steps)
MCO: implement the variable step formula
Subprogram mod_finite_differences_scheme_fourth_o1::t_fd_scheme_fourth_o1_forward_fill (self, steps)
MCO: implement the variable step formula
Module mod_finite_differences_scheme_fourth_o2
MCO: introduce variable steps
Module mod_finite_differences_scheme_fourth_o3
MCO: introduce variable steps
Module mod_finite_differences_scheme_second_o5
MCO: introduce variable steps
Module mod_finite_differences_scheme_sixth_o1
MCO: introduce variable steps
Subprogram mod_finite_differences_scheme_third_o2::t_fd_scheme_third_o2_backward_fill (self, steps)
MCO: implement the variable step formula
Subprogram mod_finite_differences_scheme_third_o2::t_fd_scheme_third_o2_forward_fill (self, steps)
MCO: implement the variable step formula
Module mod_finite_differences_scheme_third_o3
MCO: introduce variable steps
Module mod_finite_differences_scheme_third_o4
MCO: introduce variable steps
Module mod_generic_list

documentation

Module mod_generic_stack

documentation

Subprogram mod_gradient_operator_cell_to_face::gradient_operator_cell_to_face (gradient, array, order)
MCO: deal with point/mean quantity
Subprogram mod_interpolate_scalar_cell_to_vertices::interpolate_scalar_cell_to_vertices (field_cell, field_vertices, order)
deal with the boundaries (extrapolate?) With the index (i,j,k) corresponding to the intersection of cells (i+{0,1},j+{0,1},k+{0,1})
Subprogram mod_interpolate_scalar_cell_to_vertices::interpolate_scalar_cell_to_vertices_generic (field_cell, field_vertices, scheme)
deal with the boundaries (extrapolate?) With the index (i,j,k) corresponding to the intersection of cells (i+{0,1},j+{0,1},k+{0,1})
Subprogram mod_interpolate_vector_face_to_cell::interpolate_vector_face_to_cell_unit (velocity, i, j, k)
It does not seemed to be used anymore ?!! (not efficient routine ??)
Subprogram mod_interpolation_computer::int_weno_compute_from_array (scheme, int_step, step_array, array, index, FV)
MCO derivate from ext_scheme would be better
Subprogram mod_interpolation_weno_scheme_o5z::t_int_weno_scheme_o5z_backward_apply (self, step, steps, values)

MCO: compute the appropriate smoothness_indicator factors

MCO: compute the optimal gamma factors with "step"

Subprogram mod_interpolation_weno_scheme_o5z_reconstruction::t_int_weno_scheme_o5z_reconstruction_backward_apply_opt (self, step, steps, values)
MCO: compute the optimal gamma factors with variables steps
Subprogram mod_lsm_advect::levelset_advect (ls, dt, velocity_nm1, velocity_n, velocity_np1, dt_nm1, dt_n)
MCO: plug back refined grid (bnd cond not ready for it)
Subprogram 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)
MCO: the boundary conditions are at time \(t^n\), even during the RK integration!
Subprogram mod_lsm_band::compute_levelset_band (levelset_field, levelset_band, width)
Could be optimized by precomputing the corners values
Subprogram mod_lsm_cp_field::compute_closest_point_array (cp_array, ls, cp_rest)

MCO: now cp_rest can be safely removed!

: check this function for grid

Subprogram mod_lsm_curvature::compute_levelset_curvature_outline (my_levelset, curvature)
MCO: find another solution for bndc
Subprogram mod_lsm_volume_fraction_bc::translate_vf_bc_to_ls_bc (phi, vf_boundary_condition, ls_boundary_condition)
MCO: deal with Neumann bndc (impose Dirichlet with distance function)
Subprogram mod_mpi_grid_info::grid_information ()
JPI: to document and to summarize?
Subprogram mod_mpi_localization::get_neighbor_id_containing_point (position)
Write the function answering the former note.
Subprogram mod_point_interpolation_field::reconstruct_face_field_comp (field, pos, order, comp)
MCO
Subprogram mod_point_interpolation_prepare::interpolation_set_stencil_centered (data, xxi, yyi, zzi, xo, yo, zo)
: Print a graceful exit message when nx == 1. Currently, it should produce an array overflow.
Subprogram mod_point_interpolation_prepare::interpolation_set_stencil_oriented (data, i_pi, j_pi, k_pi, tx, ty, tz)
: Treat domain boundaries.
Module mod_rec_d_point_lagrange_o1
MCO: For 2D and 3D: those are only for derivative in the x direction, we should do y and z too
Module mod_rec_d_point_lagrange_o2
MCO: For 2D and 3D: those are only for derivative in the x direction, we should do y and z too
Module mod_rec_d_point_lagrange_o3
MCO: For 2D and 3D: those are only for derivative in the x direction, we should do y and z too
Subprogram mod_staggered_indice_links::staggered_indice_links ()
finish documentation
Module type_edge_field
finish doc
Module type_face_field
finish doc
Module type_face_vector_gradient
finish doc
Module type_fv_flux
MCO: details needed here
Module type_int_fast_scheme
MCO: gfortran is making the code crash when using the inner compute_weights() method, while ifort is fine with it. For now, use a supplied procedure given to precompte(). When the problem is solved, switch back to overloaded compute_weights call, much more elegant.
Subprogram type_int_fast_scheme::t_int_fast_scheme_apply_dummy (self, values)
Throw exception
Subprogram type_int_point_1d::int_point_1d_construct (self, index_start, index_end)
MCO: bring back the "construct" function instead for more clarity
Subprogram type_int_point_weno_2d::int_point_weno_2d_interpolate (self, X, coordinates_x, coordinates_y, values, derivatives, cv_x, cv_y)
MCO: deal with reconstruction schemes for 2D
Subprogram type_int_point_weno_3d::int_point_weno_3d_interpolate (self, X, coordinates_x, coordinates_y, coordinates_z, values, derivatives, cv_x, cv_y, cv_z)
MCO: deal with reconstruction schemes for 3D
Subprogram type_levelset::levelset_constructor (self, parameters)
Treat periodic boundaries
Subprogram type_levelset::levelset_destructor (self)
MCO: with modern Fortran, it is no more necessary to unallocate the various arrays
Subprogram type_particle_list::t_particle_list_mpi_exchange (self)
This could be done with less memory usage by using a map of destination nodes or a real list of outgoing particles
Module type_stress_tensor
finish doc