Documentation for module dirichlet_bc_types

Dirichlet boundary condition data types

source: dirichlet_bc_types.F
Loading...

public Types:

tile_type
...
dirichlet_bc_p_type
...
dirichlet_bc_parameters
...
dirichlet_bc_type
...
tile_p_type
...

public Subroutines/Functions:

deallocates dirichlet_bc_parameters type
releases the defined Dirichlet boundary region
releases tiles

Parameters:

INTEGER
:: aa_cuboidal = 30
INTEGER
:: aa_planar = 10
INTEGER
:: circumscribed = 1
INTEGER
:: cylindrical = 20
INTEGER
:: inscribed = 2
INTEGER
:: planar = 11
INTEGER
:: xy_plane = 110
INTEGER
:: xz_plane = 101
INTEGER
:: x_axis = 100
INTEGER
:: yz_plane = 011
INTEGER
:: y_axis = 010
INTEGER
:: z_axis = 001

public Types:

TYPE :: dirichlet_bc_parameters

...


LOGICAL
:: verbose_output ...
LOGICAL
:: do_dbc_cube = .FALSE. ...
REAL(dp)
:: time ...
INTEGER
:: n_aa_planar ...
INTEGER,
DIMENSION(:,:), POINTER :: aa_planar_nprtn => NULL() ...
INTEGER,
DIMENSION(:), POINTER :: aa_planar_pplane => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: aa_planar_xxtnt => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: aa_planar_yxtnt => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: aa_planar_zxtnt => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_planar_vd => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_planar_osc_frac => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_planar_frequency => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_planar_phase => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_planar_sigma => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_planar_thickness => NULL() ...
LOGICAL,
DIMENSION(:), POINTER :: aa_planar_is_periodic => NULL() ...
INTEGER
:: n_planar ...
INTEGER,
DIMENSION(:,:), POINTER :: planar_nprtn => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: planar_avtx => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: planar_bvtx => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: planar_cvtx => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: planar_dvtx => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: planar_vd => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: planar_osc_frac => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: planar_frequency => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: planar_phase => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: planar_sigma => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: planar_thickness => NULL() ...
LOGICAL,
DIMENSION(:), POINTER :: planar_is_periodic => NULL() ...
INTEGER
:: n_aa_cylindrical ...
INTEGER,
DIMENSION(:,:), POINTER :: aa_cylindrical_nprtn => NULL() ...
INTEGER,
DIMENSION(:), POINTER :: aa_cylindrical_paxis => NULL() ...
INTEGER,
DIMENSION(:), POINTER :: aa_cylindrical_nsides => NULL() ...
INTEGER,
DIMENSION(:), POINTER :: aa_cylindrical_apxtyp => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: aa_cylindrical_xtnt => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: aa_cylindrical_bctr => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cylindrical_brad => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cylindrical_vd => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cylindrical_osc_frac => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cylindrical_frequency => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cylindrical_phase => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cylindrical_sigma => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cylindrical_thickness => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cylindrical_sgap => NULL() ...
LOGICAL,
DIMENSION(:), POINTER :: aa_cylindrical_is_periodic => NULL() ...
INTEGER
:: n_aa_cuboidal ...
INTEGER,
DIMENSION(:,:), POINTER :: aa_cuboidal_nprtn => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: aa_cuboidal_xxtnt => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: aa_cuboidal_yxtnt => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: aa_cuboidal_zxtnt => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cuboidal_vd => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cuboidal_osc_frac => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cuboidal_frequency => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cuboidal_phase => NULL() ...
REAL(dp),
DIMENSION(:), POINTER :: aa_cuboidal_sigma => NULL() ...
LOGICAL,
DIMENSION(:), POINTER :: aa_cuboidal_is_periodic => NULL() ...

TYPE :: dirichlet_bc_p_type

...


POINTER :: dirichlet_bc ...

TYPE :: dirichlet_bc_type

...


REAL(dp)
:: v_d ...
REAL(dp)
:: osc_frac ...
REAL(dp)
:: frequency ...
REAL(dp)
:: phase ...
INTEGER
:: dbc_id ...
INTEGER
:: dbc_geom ...
REAL(dp),
DIMENSION(3,8) :: vertices ...
DIMENSION(:), POINTER :: tiles => NULL() ...
INTEGER
:: n_tiles ...
REAL(dp)
:: smoothing_width ...

TYPE :: tile_p_type

...


TYPE(tile_type),
POINTER :: tile ...

TYPE :: tile_type

...


INTEGER
:: tile_id ...
REAL(dp),
DIMENSION(3,8) :: vertices ...
TYPE(pw_type),
POINTER :: tile_pw => NULL() ...
REAL(dp)
:: volume ...

SUBROUTINEdbc_parameters_dealloc(dbc_params)

deallocates dirichlet_bc_parameters type

Arguments:
INTENT(inout)
:: dbc_params dbc parameters

SUBROUTINEdbc_release(contacts, do_dbc_cube, pw_pool)

releases the defined Dirichlet boundary region

Arguments:
INTENT(inout),
POINTER
:: contacts(:) the DBC region to be released
LOGICAL,
INTENT(in)
:: do_dbc_cube ...
INTENT(in),
OPTIONAL, POINTER
:: pw_pool pool of the plane wave grid

SUBROUTINEdbc_tile_release(dbc, pw_pool)

releases tiles

Arguments:
INTENT(inout),
POINTER
:: dbc ...
INTENT(in),
OPTIONAL, POINTER
:: pw_pool pool of the plane wave grid