0.6.0
Loading...
Searching...
No Matches
type_scalar_field_bc_initializer.f90 File Reference

Data Types

type  type_scalar_field_bc_initializer::t_scalar_bc_initializer_dirichlet
 
type  type_scalar_field_bc_initializer::t_scalar_bc_initializer_neumann
 
type  type_scalar_field_bc_initializer::t_scalar_bc_initializer_flux
 
type  type_scalar_field_bc_initializer::t_scalar_bc_initializer_robin
 
type  type_scalar_field_bc_initializer::t_scalar_bc_initializer_wall
 

Modules

module  type_scalar_field_bc_initializer
 

Functions/Subroutines

subroutine type_scalar_field_bc_initializer::set_bc_u (scalar_initializer, i, b, bctype, last_coef)
 
subroutine type_scalar_field_bc_initializer::set_bc_v (scalar_initializer, j, b, bctype, last_coef)
 
subroutine type_scalar_field_bc_initializer::set_bc_w (scalar_initializer, k, b, bctype, last_coef)
 
subroutine type_scalar_field_bc_initializer::initialize_scalar (scalar_initializer, region, boundary_condition, bctype, last_coef)
 
subroutine type_scalar_field_bc_initializer::set_bc_u_shape (shape_initializer, i, b, bctype, last_coef)
 
subroutine type_scalar_field_bc_initializer::set_bc_v_shape (shape_initializer, j, b, bctype, last_coef)
 
subroutine type_scalar_field_bc_initializer::set_bc_w_shape (shape_initializer, k, b, bctype, last_coef)
 
subroutine type_scalar_field_bc_initializer::initialize_shape (shape_initializer, region, boundary_condition, bctype, last_coef)
 
subroutine type_scalar_field_bc_initializer::initialize_vector (vector_initializer, region, boundary_condition, bctype)
 
subroutine set_bc_vector (point_index, side_coord, coords_j, coords_k, dj, dk, type, sampling, side)
 Set the side with adequate vector (Robin) boundary condition.
 
subroutine type_scalar_field_bc_initializer::set_bc_uniform (bctype, region, boundary_condition, coef)
 
recursive subroutine type_scalar_field_bc_initializer::initialize_dirichlet_bc (bc_initializer, boundary_condition)
 
recursive subroutine type_scalar_field_bc_initializer::initialize_neumann_bc (bc_initializer, boundary_condition)
 
recursive subroutine type_scalar_field_bc_initializer::initialize_flux_bc (bc_initializer, boundary_condition)
 
recursive subroutine type_scalar_field_bc_initializer::initialize_robin_bc (bc_initializer, boundary_condition)
 
recursive subroutine type_scalar_field_bc_initializer::initialize_wall_bc (bc_initializer, boundary_condition)
 
recursive subroutine type_scalar_field_bc_initializer::finalize_bc_dirichlet (bc_initializer)
 
recursive subroutine type_scalar_field_bc_initializer::finalize_bc_neumann (bc_initializer)
 
recursive subroutine type_scalar_field_bc_initializer::finalize_bc_flux (bc_initializer)
 
recursive subroutine type_scalar_field_bc_initializer::finalize_bc_robin (bc_initializer)
 
recursive subroutine type_scalar_field_bc_initializer::finalize_bc_wall (bc_initializer)
 

Function/Subroutine Documentation

◆ set_bc_vector()

subroutine initialize_vector::set_bc_vector ( integer, dimension(3), intent(in) point_index,
double precision, intent(in) side_coord,
double precision, dimension(:), intent(in) coords_j,
double precision, dimension(:), intent(in) coords_k,
double precision, dimension(:), intent(in) dj,
double precision, dimension(:), intent(in) dk,
integer, intent(in) type,
integer, intent(in) sampling,
class(t_boundary_condition_side), intent(inout) side )

Set the side with adequate vector (Robin) boundary condition.

This function is a generic function based on the algorithm for a left side (regarding its arguments' names). It ressembles to set_bc_u and others, but in a more compact form It is based on variations of the variable point_index that is used as a trick to generate the boundary cells' barycenter. point_index(1) stands for the side axis (1, 2 or 3). point_index(2) stands for the first axis (1, 2 or 3), i.e. the first index of sidecoef. point_index(3) stands for the second axis (1, 2 or 3), i.e. the second index of sidecoef. Regarding barycenter position:

  • if the side is left, the fixed point position is point(1) = coord_x_u(isu)
  • if the side is right, the fixed point position is point(1) = coord_x_u(ieu)
  • if the side is bottom, the fixed point position is point(2) = coord_y_v(jsv)
  • if the side is top, the fixed point position is point(2) = coord_y_v(jev)
  • if the side is back, the fixed point position is point(3) = coord_z_w(ksw)
  • if the side is front, the fixed point position is point(3) = coord_z_w(kew)
  • point(point_index(2)) = coords_j(jj) is the position of the jj cell of the first axis
  • point(point_index(3)) = coords_k(kk) is the position of the kk cell of the second axis
Parameters
[in]

point_index: the indices of the axis: (1): side, (2) first axis, (3) second axis

Parameters
[in]

side_coord: the coordinate of the size (e.g. coord_x_u(isu) for left)

Parameters
[in]

coords_j: the cell coordinates of the first axis

Parameters
[in]

coords_k: the cell coordinates of the second axis

Parameters
[in]

dj: the cell sizes along the first axis (may be dx, dy or dz)

Parameters
[in]

dk: the cell sizes along the second axis (may be dx, dy or dz)

Parameters
[in]

type: the given boundary type

Parameters
[in]

sampling: the sampling level (1=2nd order, 2=4th order)

Parameters
[in,out]

side: the resulting filled boundary condition side