Currently, we assume the ferroelectric to have uniaxial atomic displacement along the thickness of the film. This allows us to treat polarization as a scalar (Px = 0, Py = 0, Pz = P). In order to simulate general ferroelectrics, we would like to have non-zero Px and Py.
This can be done in the following way:
Initialize a three component MultiFab for P
Modify the RHS of Poisson solve to read div(P) - rho instead of 'dP/dz'
Modify the RHS of TDGL equation to account for all three components
Update time integrator loop to advance Px, Py, and Pz
Add diagnostics for all three components
Note that, we will have to pass new material parameters for Landau free energy term. We should consider renaming the parameters to alpha_* etc instead of alpha, beta, and gamma.
Currently, we assume the ferroelectric to have uniaxial atomic displacement along the thickness of the film. This allows us to treat polarization as a scalar (Px = 0, Py = 0, Pz = P). In order to simulate general ferroelectrics, we would like to have non-zero Px and Py.
This can be done in the following way:
div(P) - rho
instead of 'dP/dz'Note that, we will have to pass new material parameters for Landau free energy term. We should consider renaming the parameters to
alpha_*
etc instead ofalpha
,beta
, andgamma
.We can use the following paper as a reference: https://aip.scitation.org/doi/pdf/10.1063/1.1377855