Module: Ferroelectric#
Semi-implicit thin film solver for second order differential equations of form:
Name: mod_mupro_msolve
Depends on: mod_mupro_base, mod_mupro_fft, mod_mupro_log
Defined variables: None
Defined types: - type_mupro_FerroelectricContext
Defined Types#
type_mupro_FerroelectricContext#
Variables
Variable |
Type |
Dimension |
Meaning |
---|---|---|---|
stiffness |
real64 |
(6,6) |
Elastic stiffness |
electrostrictive |
real64 |
(6,6) |
Electrostrictive tensor |
eigenstrain |
real64,pointer |
(6,z,y,x) |
Eigenstrain |
elast |
real64,pointer |
(3,z,y,x) |
Elastic driving force |
elec |
real64,pointer |
(3,z,y,x) |
Electric driving force |
lan |
real64,pointer |
(3,z,y,x) |
Landau driving force |
op |
real64,pointer |
(3,z,y,x) |
Order parameter |
boundCharge |
real64,pointer |
(3,z,y,x) |
Bound charge |
landau_energy |
real64,pointer |
(3,z,y,x) |
Landau energy |
grad_energy |
real64,pointer |
(3,z,y,x) |
gradient energy |
a1,a2,a3 |
real64 |
- |
Landau coefficient |
a11,a22,a33 |
real64 |
- |
Landau coefficient |
a23,a13,a12 |
real64 |
- |
Landau coefficient |
a111,a112,a123 |
real64 |
- |
Landau coefficient |
a1111,a1112,a1122,a1123 |
real64 |
- |
Landau coefficient |
type_mupro_inhomoFerroelectricContext#
Variables
Variable |
Type |
Dimension |
Meaning |
---|---|---|---|
stiffness |
real64 |
(6,6) |
Elastic stiffness |
electrostrictive |
real64 |
(6,6) |
Electrostrictive tensor |
eigenstrain |
real64,pointer |
(6,z,y,x) |
Eigenstrain |
elast |
real64,pointer |
(3,z,y,x) |
Elastic driving force |
elec |
real64,pointer |
(3,z,y,x) |
Electric driving force |
lan |
real64,pointer |
(3,z,y,x) |
Landau driving force |
op |
real64,pointer |
(3,z,y,x) |
Order parameter |
boundCharge |
real64,pointer |
(3,z,y,x) |
Bound charge |
landau_energy |
real64,pointer |
(3,z,y,x) |
Landau energy |
grad_energy |
real64,pointer |
(3,z,y,x) |
gradient energy |
a1,a2,a3 |
real64,pointer |
- |
Landau coefficient |
a11,a22,a33 |
real64,pointer |
- |
Landau coefficient |
a23,a13,a12 |
real64,pointer |
- |
Landau coefficient |
a111,a112,a123 |
real64,pointer |
- |
Landau coefficient |
a1111,a1112,a1122,a1123 |
real64,pointer |
These two types inherit from type_ferroelectricBase
Procedures#
setup
get_gradient_energy
get_polarization_bound_charge
get_eigenstrain
get_elastic_driving_force
get_landau_driving_force
get_gradient_driving_force
All the above subroutines have a parameter of type type_FerroelectricBase
, which can be converted to types type_mupro_FerroelectricContext
and type_mupro_inhomoFerroelectricContext
as needed
Argument |
Type(Intent) |
---|---|
context |
type(type_FerroelectricBase), intent(inout) :: context |