Linkwise Dirichlet potential non-equilibrium boundary condition for curved wall
The pdf is decomposed into equilibrium (eq) and non-equilibrium (neq) part: f = f_eq + f_neq - f_eq is calculated by weighting a fictitious potential, which is obtained by an extrapolation using the fluid neighbor(s) - f_neq is approximated by second-order extrapolation using the fluid neighbor(s) - for qVal < 0.75 even the second neighbor is used for the extrapolations - Dirichlet: potential on wall is directly known - Linkwise: as much as possible is outsourced to the subroutine "mus_set_nonEqExpol"
Usage
boundary_condition = {
{ label = 'inner',
kind = 'potential_noneq_expol',
potential = pot_inner,
curved = true
}
}
This is described in the paper: Luo, K.; Wu, J.; Yi HL. & Tan HP. (2016). A lattice Boltzmann method for electric field-space charge coupled problems. Proceedings of the 2016 Electrostatics Joint Conference (June 2016).
This subroutine's interface must match the abstract interface definition boundaryRoutine in bc/mus_bc_header_module.f90 in order to be callable via fnct function pointer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(boundary_type) | :: | me |
global boundary type |
|||
real(kind=rk), | intent(inout) | :: | state(:) |
Current state vector of iLevel |
||
real(kind=rk), | intent(in) | :: | bcBuffer(:) |
state values of boundary elements of all fields of iLevel |
||
type(glob_boundary_type), | intent(in) | :: | globBC |
scheme global boundary type |
||
type(tem_levelDesc_type), | intent(in) | :: | levelDesc |
iLevel descriptor |
||
type(treelmesh_type), | intent(in) | :: | tree |
Treelm Mesh |
||
integer, | intent(in) | :: | nSize |
size of state array ( in terms of elements ) |
||
integer, | intent(in) | :: | iLevel |
the level On which this boundary was invoked |
||
type(tem_time_type), | intent(in) | :: | sim_time |
global time information |
||
integer, | intent(in) | :: | neigh(:) |
connectivity array corresponding to state vector |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
stencil layout information |
||
type(mus_field_prop_type), | intent(in) | :: | fieldProp |
fluid parameters and properties |
||
integer, | intent(in) | :: | varPos(:) |
pointer to field variable in the state vector |
||
integer, | intent(in) | :: | nScalars |
number of Scalars in the scheme var system |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
scheme variable system |
||
type(mus_derVarPos_type), | intent(in) | :: | derVarPos |
position of derived quantities in varsys |
||
type(mus_physics_type), | intent(in) | :: | physics |
scheme global boundary type |
||
integer, | intent(in) | :: | iField |
current field |
||
type(mus_mixture_type), | intent(in) | :: | mixture |
mixture info |