It discretizes and solves the Poisson equation. More...
Functions | |
subroutine | mod_solve_cell_poisson_equation::solve_cell_poisson_equation (scalar_field, diffusion_coefficient, equation_source_term, linear_term, ibc_variable, equation_isd_target, equation_bc, equation_diffusion_term_discretization_type, equation_diffusion_term_scheme, equation_has_linear_term, equation_has_ghost_boundary_cells, equation_has_immersed_boundaries, equation_stencil, equation_solver, equation_ls_map, equation_name, equation_variables_name) |
It discretizes and solves the Poisson equation defined on cell grid. | |
This routine solves the Poisson equation (with an optional linear term):
\[ \mathrm{div}\left( D \mathrm{\mathbf{grad}}(\phi^{n+1}) \right) + a\phi^{n+1} = s \]
subroutine mod_solve_cell_poisson_equation::solve_cell_poisson_equation | ( | double precision, dimension(:,:,:), intent(inout) | scalar_field, |
double precision, dimension(:,:,:), intent(in) | diffusion_coefficient, | ||
double precision, dimension(:,:,:), intent(in) | equation_source_term, | ||
double precision, dimension(:,:,:), intent(in) | linear_term, | ||
type(t_immersed_boundary_condition), dimension(:), intent(inout), allocatable | ibc_variable, | ||
integer, dimension(:), intent(in), allocatable | equation_isd_target, | ||
type(t_boundary_condition), intent(in) | equation_bc, | ||
integer, intent(in) | equation_diffusion_term_discretization_type, | ||
integer, intent(in) | equation_diffusion_term_scheme, | ||
logical, intent(in) | equation_has_linear_term, | ||
logical, intent(in) | equation_has_ghost_boundary_cells, | ||
logical, intent(in) | equation_has_immersed_boundaries, | ||
type(t_cell_stencil), intent(in) | equation_stencil, | ||
class(t_linear_solver), intent(inout) | equation_solver, | ||
type(t_ls_map), intent(in) | equation_ls_map, | ||
character(len=*), intent(in) | equation_name, | ||
character(len=*), intent(in) | equation_variables_name ) |
[in] | diffusion_coefficient | Coefficient of diffusion. |
[in] | equation_source_term | Source term added to the right-hand side. |
[in,out] | scalar_field | Scalar field of the poisson equation. Contains the result. |
[in] | linear_term | Contains the coefficient in front of the linear term. |
[in] | ibc_variable | Boundary conditions on immersed boundaries. |
[in] | equation_isd_target | Subset of immersed boundaries. |
[in] | equation_bc | Values for boundary conditions. |
[in] | equation_diffusion_term_discretization_type | Type of discretization (implicit/explicit) the diffusion term. |
[in] | equation_diffusion_term_scheme | Numerical scheme of the diffusion term |
[in] | equation_has_linear_term | Flag to enable the linear term. |
[in] | equation_has_immersed_boundaries | Flag to enable immersed boundaries. |
[in] | equation_has_ghost_boundary_cells | Flag to enable the ghost cells into the linear system |
[in] | equation_stencil | Stencil description. |
[in,out] | equation_solver | Linear system solver. |
[in] | equation_ls_map | Structure used to map the general numbering to the linear system numbering. |
[in] | equation_name | Name of the equation used to display a message. |
[in] | equation_variables_name | Name of the variable of the solved equation. |