Module: Electric#
Name: mod_mupro_electric
Depends on: mod_mupro_size, mod_mupro_fft
Defined variables: None
Defined types: type_mupro_ElectricContext
Defined Types#
type_mupro_ElectricContext#
Variables#
Variable |
Type |
Dimension |
Meaning |
---|---|---|---|
BC |
int32 |
- |
Choice of boundary condition for the poisson solver,1 for open circuit, 2 for short circuit |
potential |
real64, pointer |
(Rn3,Rn2,Rn1) |
Electric potential |
charge |
real64, pointer |
(Rn3,Rn2,Rn1) |
Bound charge |
elec |
real64, pointer |
(3,Rn3,Rn2,Rn1) |
Electric field (Ex,Ey,Ez) |
energy |
real64, pointer |
(Rn3,Rn2,Rn1) |
Electric Energy |
filmScreenTop |
real64 |
- |
Percentage of charge been screened on thin film surface |
filmScreenBot |
real64 |
- |
Percentage of charge been screened on thin film substrate interface |
filmPotentialTop |
real64,pointer |
(Rn2,Rn1) |
Epitaxial misfit strain \(\epsilon_{11}\) in thin film setup |
filmPotentialBot |
real64,pointer |
(Rn2,Rn1) |
Epitaxial misfit strain \(\epsilon_{22}\) in thin film setup |
polarization |
real64,pointer |
(3,Rn3,Rn2,Rn1) |
Epitaxial misfit strain \(\epsilon_{12}\) in thin film setup |
bulkElectricField |
real64 |
(3) |
Bulk constraints, means stress if choiceElasBC=1, means strain if choiceElasBC=2 |
chargeRHS |
real64,pointer |
(Rn3,Rn2,Rn1) |
Charge on the right hand side of the poisson equation |
Defined Subroutines#
mupro_electric_read_permittivity(table, name, permittivity)#
This code subroutine is used to read the stiffness values of elastic materials with a specified name from a given table.
Argument |
Type(Intent) |
Meaning |
---|---|---|
table |
type(toml_table), allocatable, intent(inout) |
A allocatable toml_table type variable, representing a table containing information about elastic materials. |
name |
character(len=*), intent(in) |
The name of the elastic material to search for |
permittivity |
real(kind=rdp), intent(out), dimension(3, 3) |
Storage of the relative permittivity of anisotropic media |
Procedures#
setup#
Link the user defined electric potential, electric field, charge etc. arrays to the corresponding array used in the library. Then, perform some necessary setup before actually solve the equation.
call electricContext%setup()
Important
setup must be called before the solve subroutines.
solve#
Solve the poisson equation, get the potential and electric field distribution from the charge and polarization distribution. This subroutine will solve the poisson equation based on the given constraints and update the electric potential and electric field in the context.