mus_compute_Poisson_module Module

This module provides the definition and methods to solve poisson equation. author: Kannan Masilamani Implementation is based on: Luo, K., Wu, J., Yi, H., & Tan, H. (2016). International Journal of Heat and Mass Transfer Lattice Boltzmann modelling of electro-thermo-convection in a planar layer of dielectric liquid subjected to unipolar injection and thermal gradient. International Journal of Heat and Mass Transfer, 103, 832–846.

Guo, Z. (2014). A Coupled Lattice Boltzmann Method to Solve Nernst – Planck Model for Simulating Electro-osmotic Flows. Journal of Scientific Computing, (61), 222–238. http://doi.org/10.1007/s10915-014-9820-6

This implementation solve equation of the form is the source term For Poisson Eq: For Poisson Boltzmann Linear Eq: For Poisson Boltzmann nonLinear Eq: For 1:1 Electrolye solution, above equation is simplied to


Uses

  • module~~mus_compute_poisson_module~~UsesGraph module~mus_compute_poisson_module mus_compute_Poisson_module module~env_module env_module module~mus_compute_poisson_module->module~env_module module~mus_field_prop_module mus_field_prop_module module~mus_compute_poisson_module->module~mus_field_prop_module module~mus_dervarpos_module mus_derVarPos_module module~mus_compute_poisson_module->module~mus_dervarpos_module module~tem_varsys_module tem_varSys_module module~mus_compute_poisson_module->module~tem_varsys_module iso_c_binding iso_c_binding module~mus_compute_poisson_module->iso_c_binding module~tem_aux_module tem_aux_module module~mus_compute_poisson_module->module~tem_aux_module module~mus_scheme_layout_module mus_scheme_layout_module module~mus_compute_poisson_module->module~mus_scheme_layout_module module~tem_param_module tem_param_module module~mus_compute_poisson_module->module~tem_param_module module~mus_param_module mus_param_module module~mus_compute_poisson_module->module~mus_param_module module~tem_geometry_module tem_geometry_module module~mus_compute_poisson_module->module~tem_geometry_module module~mus_field_prop_module->module~env_module module~mus_field_prop_module->module~tem_aux_module module~mus_poisson_module mus_poisson_module module~mus_field_prop_module->module~mus_poisson_module module~mus_physics_module mus_physics_module module~mus_field_prop_module->module~mus_physics_module module~mus_fluid_module mus_fluid_module module~mus_field_prop_module->module~mus_fluid_module module~aot_out_module aot_out_module module~mus_field_prop_module->module~aot_out_module module~tem_logging_module tem_logging_module module~mus_field_prop_module->module~tem_logging_module module~flu_binding flu_binding module~mus_field_prop_module->module~flu_binding module~mus_species_module mus_species_module module~mus_field_prop_module->module~mus_species_module module~mus_scheme_header_module mus_scheme_header_module module~mus_field_prop_module->module~mus_scheme_header_module module~mus_dervarpos_module->module~env_module module~mus_dervarpos_module->module~tem_varsys_module module~mus_dervarpos_module->module~tem_aux_module module~mus_dervarpos_module->module~mus_scheme_layout_module module~tem_stencil_module tem_stencil_module module~mus_dervarpos_module->module~tem_stencil_module module~mus_scheme_layout_module->module~env_module module~mus_scheme_layout_module->module~tem_aux_module module~mus_scheme_layout_module->module~tem_param_module module~tem_tools_module tem_tools_module module~mus_scheme_layout_module->module~tem_tools_module module~mus_moments_type_module mus_moments_type_module module~mus_scheme_layout_module->module~mus_moments_type_module module~tem_dyn_array_module tem_dyn_array_module module~mus_scheme_layout_module->module~tem_dyn_array_module module~tem_grow_array_module tem_grow_array_module module~mus_scheme_layout_module->module~tem_grow_array_module module~aotus_module aotus_module module~mus_scheme_layout_module->module~aotus_module module~aot_table_module aot_table_module module~mus_scheme_layout_module->module~aot_table_module module~mus_scheme_layout_module->module~aot_out_module module~tem_comm_env_module tem_comm_env_module module~mus_scheme_layout_module->module~tem_comm_env_module mpi mpi module~mus_scheme_layout_module->mpi module~mus_scheme_layout_module->module~tem_logging_module module~mus_scheme_layout_module->module~tem_stencil_module module~mus_param_module->module~env_module module~mus_param_module->module~tem_tools_module module~tem_general_module tem_general_module module~mus_param_module->module~tem_general_module module~mus_abortcriteria_module mus_abortCriteria_module module~mus_param_module->module~mus_abortcriteria_module module~mus_param_module->module~mus_physics_module module~mus_param_module->module~aotus_module module~mus_param_module->module~aot_out_module module~mus_param_module->module~tem_logging_module

Used by

  • module~~mus_compute_poisson_module~~UsedByGraph module~mus_compute_poisson_module mus_compute_Poisson_module module~mus_initpoisson_module mus_initPoisson_module module~mus_initpoisson_module->module~mus_compute_poisson_module module~mus_flow_module mus_flow_module module~mus_flow_module->module~mus_initpoisson_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_flow_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_flow_module module~mus_program_module mus_program_module module~mus_program_module->module~mus_flow_module module~mus_program_module->module~mus_dynloadbal_module program~musubi musubi program~musubi->module~mus_program_module

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private, parameter:: QQ_27 =27
integer, private, parameter:: QQ_19 =19
integer, private, parameter:: qN00 =1
integer, private, parameter:: q0N0 =2
integer, private, parameter:: q00N =3
integer, private, parameter:: q100 =4
integer, private, parameter:: q010 =5
integer, private, parameter:: q001 =6
integer, private, parameter:: q0NN =7
integer, private, parameter:: q0N1 =8
integer, private, parameter:: q01N =9
integer, private, parameter:: q011 =10
integer, private, parameter:: qN0N =11
integer, private, parameter:: q10N =12
integer, private, parameter:: qN01 =13
integer, private, parameter:: q101 =14
integer, private, parameter:: qNN0 =15
integer, private, parameter:: qN10 =16
integer, private, parameter:: q1N0 =17
integer, private, parameter:: q110 =18
integer, private, parameter:: q000_19 =19
integer, private, parameter:: qNNN =19
integer, private, parameter:: qNN1 =20
integer, private, parameter:: qN1N =21
integer, private, parameter:: qN11 =22
integer, private, parameter:: q1NN =23
integer, private, parameter:: q1N1 =24
integer, private, parameter:: q11N =25
integer, private, parameter:: q111 =26
integer, private, parameter:: q000_27 =27
integer, private, parameter:: QQ_9 =9
integer, private, parameter:: qN0 =1
integer, private, parameter:: q0N =2
integer, private, parameter:: q10 =3
integer, private, parameter:: q01 =4
integer, private, parameter:: qNN =5
integer, private, parameter:: qN1 =6
integer, private, parameter:: q1N =7
integer, private, parameter:: q11 =8
integer, private, parameter:: q00_9 =9

Subroutines

public subroutine mus_Poisson_advRel_d2q9(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

Advection relaxation routine for the poisson equation with an explicit calculation of all equilibrium quantities. Slow and simple. The right hand side of equation is added as a source term in mus_apply_sourceTerms routine

Read more…

Arguments

TypeIntentOptionalAttributesName
type(mus_field_prop_type), intent(in) :: fieldProp(:)

Array of field properties (fluid or species)

real(kind=rk), intent(in) :: inState(nElems*varSys%nScalars)

input pdf vector

real(kind=rk), intent(out) :: outState(nElems*varSys%nScalars)

output pdf vector

real(kind=rk), intent(inout) :: auxField(nElems*varSys%nAuxScalars)

Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models

integer, intent(in) :: neigh(nElems*layout%fStencil%QQ)

connectivity vector

integer, intent(in) :: nElems

number of elements in state Array

integer, intent(in) :: nSolve

number of elements solved in kernel

integer, intent(in) :: level

current level

type(mus_scheme_layout_type), intent(in) :: layout

current layout

type(mus_param_type), intent(in) :: params

global parameters

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys for all fields

public subroutine mus_Poisson_advRel_generic(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

Advection relaxation routine for the poisson equation with an explicit calculation of all equilibrium quantities. Slow and simple. The right hand side of equation is added as a source term in mus_apply_sourceTerms routine

Read more…

Arguments

TypeIntentOptionalAttributesName
type(mus_field_prop_type), intent(in) :: fieldProp(:)

Array of field properties (fluid or species)

real(kind=rk), intent(in) :: inState(nElems*varSys%nScalars)

input pdf vector

real(kind=rk), intent(out) :: outState(nElems*varSys%nScalars)

output pdf vector

real(kind=rk), intent(inout) :: auxField(nElems*varSys%nAuxScalars)

Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models

integer, intent(in) :: neigh(nElems*layout%fStencil%QQ)

connectivity vector

integer, intent(in) :: nElems

number of elements in state Array

integer, intent(in) :: nSolve

number of elements solved in kernel

integer, intent(in) :: level

current level

type(mus_scheme_layout_type), intent(in) :: layout

current layout

type(mus_param_type), intent(in) :: params

global parameters

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys for all fields

public subroutine mus_PBLinear_advRel_generic(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

Advection relaxation routine for the linear poisson boltzmann equation with an explicit calculation of all equilibrium quantities. Slow and simple. Where k^2 is inverse of debye length and in this kernel refered as RHS_coeff

Read more…

Arguments

TypeIntentOptionalAttributesName
type(mus_field_prop_type), intent(in) :: fieldProp(:)

Array of field properties (fluid or species)

real(kind=rk), intent(in) :: inState(nElems*varSys%nScalars)

input pdf vector

real(kind=rk), intent(out) :: outState(nElems*varSys%nScalars)

output pdf vector

real(kind=rk), intent(inout) :: auxField(nElems*varSys%nAuxScalars)

Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models

integer, intent(in) :: neigh(nElems*layout%fStencil%QQ)

connectivity vector

integer, intent(in) :: nElems

number of elements in state Array

integer, intent(in) :: nSolve

number of elements solved in kernel

integer, intent(in) :: level

current level

type(mus_scheme_layout_type), intent(in) :: layout

current layout

type(mus_param_type), intent(in) :: params

global parameters

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys for all fields

public subroutine mus_PBnonLinear_advRel_generic(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

Advection relaxation routine for the nonlinear poisson boltzmann equation for electrolyte solution

Read more…

Arguments

TypeIntentOptionalAttributesName
type(mus_field_prop_type), intent(in) :: fieldProp(:)

Array of field properties (fluid or species)

real(kind=rk), intent(in) :: inState(nElems*varSys%nScalars)

input pdf vector

real(kind=rk), intent(out) :: outState(nElems*varSys%nScalars)

output pdf vector

real(kind=rk), intent(inout) :: auxField(nElems*varSys%nAuxScalars)

Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models

integer, intent(in) :: neigh(nElems*layout%fStencil%QQ)

connectivity vector

integer, intent(in) :: nElems

number of elements in state Array

integer, intent(in) :: nSolve

number of elements solved in kernel

integer, intent(in) :: level

current level

type(mus_scheme_layout_type), intent(in) :: layout

current layout

type(mus_param_type), intent(in) :: params

global parameters

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys for all fields