Download as pdf or txt
Download as pdf or txt
You are on page 1of 51

VASP: Basics

(DFT, PW, PAW, … )

University of Vienna,
Faculty of Physics and Center for Computational Materials Science,
Vienna, Austria
Outline
● Density functional theory
● Translational invariance and periodic boundary conditions
● Plane wave basis set
● The Projector-Augmented-Wave method
● Electronic minimization
The Many-Body Schrödinger equation
Ĥ (r1 , ..., rN ) = E (r1 , ..., rN )
0 1
X X X
@ 1 i+ V (ri ) +
1 A (r1 , ..., rN ) = E (r1 , ..., rN )
2 i i
|ri rj |
i6=j

For instance, many-body WF storage demands are prohibitive:


N
(r1 , ..., rN ) (#grid points)

5 electrons on a 10×10×10 grid ~ 10 PetaBytes !

A solution: map onto “one-electron” theory:


(r1 , ..., rN ) ! { 1 (r), 2 (r), ..., N (r)}
Hohenberg-Kohn-Sham DFT
Map onto “one-electron” theory:
N
Y
(r1 , ..., rN ) ! { 1 (r), 2 (r), ..., N (r)} (r1 , ..., rN ) = i (ri )
i

Total energy is a functional of the density:


E[⇢] = Ts [{ i [⇢]}] + EH [⇢] + Exc [⇢] + EZ [⇢] + U [Z]

The density is computed using the one-electron orbitals:


N
X
⇢(r) = | i (r)|2
i

The one-electron orbitals are the solutions of the Kohn-Sham equation:


⇣ 1 ⌘
+ VZ (r) + VH [⇢](r) + Vxc [⇢](r) i (r) = ✏i i (r)
2

BUT:
Exc [⇢] =??? Vxc [⇢](r) =???
Exchange-Correlation
Exc [⇢] =??? Vxc [⇢](r) =???

• Exchange-Correlation functionals are modeled on the uniform-electron-gas (UEG):


The correlation energy (and potential) has been calculated by means of Monte-
Carlo methods for a wide range of densities, and has been parametrized to yield a
density functional.

• LDA: we simply pretend that an inhomogeneous electronic density locally behaves


like a homogeneous electron gas.

• Many, many, many different functionals available:


LDA, GGA, meta-GGA, van-der-Waals functionals, etc etc
An N-electron system: N = O(1023)

Hohenberg-Kohn-Sham DFT takes us a long way:

(r1 , ..., rN ) ! { 1 (r), 2 (r), ..., N (r)}

N
(#grid points) N ⇥ (#grid points)

Nice for atoms and molecules, but in a realistic piece of solid state material N= O(1023)!
Translational invariance:
Periodic Boundary Conditions
Translational invariance implies:
ikR
nk (r + R) = nk (r)e

and
nk (r) = unk (r)eikr

unk (r + R) = unk (r)

All states are labeled by Bloch vector k and the band index n:
• The Bloch vector k is usually constrained to lie within the first Brillouin zone
of the reciprocal space lattice.

• The band index n is of the order if the number of electrons per unit cell.
Reciprocal space & the first Brillouin zone
z
L 4pi/L z z

b2 b1 b1
b2
a2
a1 y y
a3 x x
y
x
b3 b3

A B C

2⇡ 2⇡ 2⇡
b1 = a2 ⇥ a3 b2 = a3 ⇥ a1 b3 = a1 ⇥ a2
⌦ ⌦ ⌦

⌦ = a1 · a2 ⇥ a3 ai · bj = 2⇡ ij
Sampling the 1st BZ
The evaluation of many key quantities involves an integral over the 1st BZ.
For instance the charge density:
Z
1 X 2
⇢(r) = fnk | nk (r)| dk
⌦BZ n BZ

We exploit the fact that the orbitals at Bloch vectors k that are close together are
almost identical and approximate the integral over the 1st BZ by a weighted sum
over a discrete set of k-points:
X
2
⇢(r) = wk fnk | nk (r)| dk,
nk

Fazit: the intractable task of determining (r1 , ..., rN ) with N=1023, has been
reduced to calculating nk (r) at a discrete set of k-points in the 1st BZ, for a
number of bands that is of the order if the number of electrons in the unit cell.
Idea: equally spaced mesh in the 1st Brillouin zone

Example: a quadratic 2D lattice !


• q1=q2=4, i.e., 16 points in total b
• Only 3 symmetry inequivalent points: 4 4 k1
1 1 1 k2
4 ⇥ k 1 = ( , ) ) !1 = k3 !
8 8 4
3 3 1 b
4 ⇥ k 2 = ( , ) ) !2 = 0
8 8 4
3 1 1 IBZ
8 ⇥ k 3 = ( , ) ) !3 =
8 8 2 BZ
Z
1 1 1 1
F (k)dk ) F (k1 ) + F (k2 ) + F (k3 )
⌦BZ 4 4 2
BZ
Algorithm:

• Calculate equally spaced mesh.


• Shift the mesh if desired.
• Apply all symmetry operations of the Bravais lattice to all k-points.
• Extract the irreducible k-points (IBZ).
• Calculate the proper weighting.

Common meshes: Two different choices for the center of the mesh.

• Centered on Γ
• Centered around Γ (can break the symmetry!)
before after shifted to
symmetrization

! !

• In certain cell geometries (e.g. hexagonal cells) even meshes break the symmetry.

• Symmetrization results in non-uniform distributions of k-points.

• Γ-point centered meshes preserve the symmetry.


A B C
The total energy

E[⇢, {R, Z}] = Ts [{ nk [⇢]}] + EH [⇢, {R, Z}] + Exc [⇢] + U ({R, Z})

The kinetic energy


X 1
Ts [{ nk [⇢]}] = wk fnk h nk | | nk i
2
nk

The Hartree energy


ZZ
1 ⇢eZ (r)⇢eZ (r0 ) 0
EH [⇢, {R, Z}] = dr dr
2 |r r0 |
where
X X
2
⇢eZ (r) = ⇢(r) + Zi (r Ri ) ⇢(r) = wk fnk | nk (r)| dk
i nk

The Kohn-Sham equations


⇣ 1 ⌘
+ VH [⇢eZ ](r) + Vxc [⇢](r) nk (r) = ✏nk nk (r)
2

The Hartree potential


Z
⇢eZ (r0 ) 0
VH [⇢eZ ](r) = dr
|r r0 |
A plane wave basis set

nk (r) = unk (r)eikr unk (r + R) = unk (r)

All cell-periodic functions are expanded in plane waves (Fourier analysis):


1 X 1 X
iGr
unk (r) = CGnk e nk (r) = CGnk ei(G+k)r
⌦1/2 G
⌦1/2 G
X X
iGr
⇢(r) = ⇢G e V (r) = VG eiGr
G G

The basis set includes all plane waves for which

1
|G + k|2 < Ecuto↵
2

Transformation by means of FFT between “real” space and “reciprocal” space:


X FFT 1 X
iGr iGr
Crnk = CGnk e ! CGnk = Crnk e
NFFT r
G
Why use plane waves?

• Historical reason: Many elements exhibit a band-structure that can


be interpreted in a free electron picture (metallic s and p elements).
Pseudopotential theory was initially developed to cope with these
elements (pseudopotential perturbation theory).

• Practical reason: The total energy expressions and the Hamiltonian


are easy to implement.

• Computational reason: The action of the Hamiltonian on the orbitals


can be efficiently evaluated using FFTs.
FFT
real space reciprocal space

G
cut

τ
2

b2
0 1 2 3 N−1 0 5 −4 −3 −2 −1 0 1 2 3 4 5
τ b1
1 −N/2+1 N/2
x =n /N τ g = n 2π / τ
1 1 1 1 1 1
X FFT 1 X
iGr iGr
Crnk = CGnk e ! CGnk = Crnk e
NFFT r
G
FFT
real space reciprocal space

G
cut

τ
2

b2
0 1 2 3 N−1 0 5 −4 −3 −2 −1 0 1 2 3 4 5
τ b1
1 −N/2+1 N/2
x =n /N τ g = n 2π / τ
1 1 1 1 1 1
X FFT 1 X
iGr iGr
Crnk = CGnk e ! CGnk = Crnk e
NFFT r
G
X FFT 1 X
iGr iGr
Crnk = CGnk e ! CGnk = Crnk e
NFFT r
G
FFT
real space reciprocal space

G
cut

τ
2

b2
0 1 2 3 N−1 0 5 −4 −3 −2 −1 0 1 2 3 4 5
τ b1
1 −N/2+1 N/2
x =n /N τ g = n 2π / τ
1 1 1 1 1 1
X FFT 1 X
iGr iGr
Crnk = CGnk e ! CGnk = Crnk e
NFFT r
G
The charge density
Gcut

FFT

ψ ψ ψ
G 2G r r
cut

FFT

ρ ρ
G r
The action of the Hamiltonian
The action H| nk i
✓ ◆
1
+ V (r) nk (r)
2
Using the convention
1 i(G+k)r
hr|G + ki = 1/2
e ! hG + k| nk i = CGnk

• Kinetic energy:
1 1
hG + k| | nk i = |G + k|2 CGnk NNPLW
2 2
• Local potential: V = VH [⇢] + Vxc [⇢] + Vext
• Exchange-correlation: easily obtained in real space Vxc,r = Vxc [⇢r ]
• FFT to reciprocal space {Vxc,r } ! {Vxc,G }
4⇡
• Hartree potential: solve Poisson eq. in reciprocal space VH,G = ⇢G
|G|2
• Add all contributions VG = VH,G + Vxc,G + Vext,G
• FFT to real space {VG } ! {Vr }
The action
1 X
iGr
hG + k|V | nk i = Vr Crnk e NFFT log NFFT
NFFT r
The action of the local potential
2Gcut

4π e2 FFT
G2
ρ V V ψ
G G r r

G cut 3Gcut

add FFT

ψ R R (residual vector)
G G r
The Projector-Augmented-Wave method
The number of plane waves needed to describe
• tightly bound (spatially strongly localized) states,
• and rapid oscillations (nodal features) of the orbitals near the nucleus
exceeds any practical limit, except maybe for Li and H.

The common solution:


• Introduce the frozen core approximation:
Core electrons are pre-calculated in an atomic environment and kept frozen
in the course of the remaining calculations.

• Use of pseudopotentials instead of exact potentials:


• Norm-conserving pseudopotentials
• Ultra-soft pseudopotentials
• The Projector-Augmented-Wave (PAW) method
[P. E. Blöchl, Phys. Rev. B 50, 17953 (1994)]
Pseudopotentials: the general idea

~
Ψ

Ψ rc

~
V

V
Pseudopotentials: cont.
2.5
2.0

wave-function
1.5 s : E= -0.576 R c=1.9

1.0
0.5 p : E= -0.205 R c=1.9
Al Al
0.0
0 1 2 3 4
R (a.u.)

Exact potential (interstitial) Pseudopotential

Al effective Al atom PAW Al atom


3p 2p 3p
3s 1s 3s

2p 2p and 1s are nodeless nodal structure retained


2s
12
The PAW orbitals
X
| n i = | en i + (| i i | ei i)he
pi | en i
i

X X
| en i | en i | ei ihe
pi | en i | en i | ei ihe
pi | ˜n i
i iX
+ | i ihepi | en i
i

PW PS-LCAO AE-LCAO
= - +

AE pseudo pseudo-onsite AE-onsite


The PAW orbitals (cont.)
X
| n i = | en i + (| i i | ei i)he
pi | en i
i

• | en i is the pseudo (PS) orbital, expressed in a plane wave basis set

• | i i, | ˜i i, and |p̃i i are atom-centered localized functions

• The all-electron partial waves are solutions to the radial scalar relativistic
non-spinpolarized Schrödinger equation:
1
( + ve↵ )| i i = ✏i | i i
2
• A pseudization procedure yields:

| i i ! | ei i ve↵ ! vee↵ pi | ej i =
he ij
The PAW orbitals (cont.)
• The pseudo partial waves obey:

⇣ 1 X ⌘ ⇣ X ⌘
+ vee↵ + |e pj | | ek i = ✏k 1 +
pi iDij he |e pj | | ek i
pi iQij he
2 ij ij

• with the so-called PAW strength parameters and augmentation charges:


1 1
Dij = h i | + ve↵ | ji h ei | + vee↵ | ej i
2 2

Qij = h i | ji h ei | ej i

The all-electron and pseudo eigenvalue spectrum is identical!


All-electron scattering properties are reproduced over a wide
energy-range.
1
( + ve↵ )| i i = ✏i | i i
2
⇣ 1 X ⌘ ⇣ X ⌘
+ vee↵ + |e pj | | ek i = ✏k 1 +
pi iDij he |e pj | | ek i
pi iQij he
2 ij ij

Si: Troullier-Martins Si: PAW

@ el (r, ✏) 1 @ l (r, ✏) 1

@r el (r, ✏) @r l (r, ✏) r=rc
r=rc
• 1st s-channel in Mn: ε1
4s “bound” state

• 2nd s-channel in Mn: ε2


“non-bound” state

• And we use the frozen core approximation:


X
ve↵ [⇢v ] = vH [⇢v ] + vH [⇢Zc ] + vxc [⇢v + ⇢c ] ⇢v (r) = ai | i (r)|2
i

X
vee↵ [e
⇢v ] = vH [e
⇢v ] + vH [e ⇢v + ⇢ec ]
⇢Zc ] + vxc [e ⇢ev (r) = ai | ei (r)|2
i
The PAW orbitals (cont.)
X X
| ni | en i | ˜lm✏ iclm✏ + | lm✏ iclm✏

PW PS-LCAO AE-LCAO
= - +

AE pseudo pseudo-onsite AE-onsite

where clm✏ = hp̃lm✏ | ˜n i

This decomposition in three contributions can be achieved for all relevant


quantities, e.g. orbitals, densities, and energies.
The kinetic energy
For instance the kinetic energy:
X 1
Ekin = fn h n| | ni
n
2

Inserting the PAW transformation (where i=lmε):


X
| n i = | ˜n i + (| i i | ˜i i)hp̃i | ˜n i
i

and assuming completeness of the one-center basis, we have

Ekin = Ẽ Ẽ 1 + E 1
X 1 ˜ XX 1 ˜ XX 1
fn h ˜n | | ni ⇢ij h ˜i | | ji + ⇢ij h i | | ji
n
2 2 2
site (i,j) site (i,j)
| {z } | {z } | {z }
Ẽ Ẽ 1 E1

Where X
⇢ij = fn h ˜n |p̃i ihp̃j | ˜n i
n

are the one-center occupancies, or on-site density matrix.


Local operators
To any (semi)-local operator A, that acts on the true all-electron orbital,
the PAW method associates a pseudo operator:
X ⇣ ⌘
à = A + |p̃i i h i |A| ji
˜ ˜
h i |A| j i hp̃j |
ij

that acts on the pseudo-orbital, such that


h |A| i = h e|Ã| ei

For instance the PS operator associated with the density operator ( |rihr|)
X ⇣ ⌘
|rihr| + |p̃i i h i |rihr| ji
˜ ˜
h i |rihr| j i hp̃j |
ij

and the density


X ⇣ ⌘
h |rihr| i = h e|rihr| ei + h e|p̃i i h i |rihr| ji h ˜i |rihr| ˜j i hp̃j | ei
ij

= ⇢e(r) ⇢e1 (r) + ⇢1 (r)

Non-local operators are more complicated.


The Hartree energy
• The PS orbitals do not have the same norm as the AE orbitals inside of
the PAW spheres.
• To correctly describe the long-range electrostatic interactions between the
PAW spheres, a soft compensation charge is introduced in the spheres (like
in the FLAPW method):

= - +

AE pseudo + compens. pseudo+comp. onsite AE-onsite


X X
1 1
EH [˜
⇢ + ⇢ˆ] EH [˜
⇢ + ⇢ˆ ] + EH [⇢1 ]
sites sites

• This way the Hartree energy (a non-local operator!) decomposes in the same
manner as a (semi)-local operator:
1 1
EH = ẼH ẼH + EH
The PAW total energy
The same three-way decomposition holds for the total energy

E = Ẽ Ẽ 1 + E 1
where
X 1 ˜
Ẽ = fn h ˜n | | n i + Exc [˜⇢ + ⇢ˆ + ⇢˜c ]+
n
2
Z
EH [˜⇢ + ⇢ˆ] + vH [˜ ⇢(r) + ⇢ˆ(r)) d3 r + U (R, Zion )
⇢Zc ] (˜
X⇢X 1 ˜
Ẽ 1 = ⇢ij h ˜i | | j i + Exc [˜⇢1 + ⇢ˆ + ⇢˜c ]+
2
sites (i,j)
Z
EH [˜⇢1 + ⇢ˆ] + vH [˜⇢Zc ] ⇢˜1 (r) + ⇢ˆ(r) d3 r
⌦r
X X ⇢
1 1
E = ⇢ij h i | | j i + Exc [⇢1 + ⇢c ]+
2
sites (i,j)
Z
EH [⇢1 ] + vH [⇢Zc ]⇢1 (r) d3 r
⌦r
The PAW total energy (cont.)
• Ẽ is evaluated on a regular grid:
The Kohn-Sham functional evaluated in a plane wave basis set
with additional compensation charge to account for the incorrect norm
of the PS-orbitals and to correctly describe long-range electrostatics
X
⇢e = fn en en⇤ PS charge density
n

⇢ˆ Compensation charges

• Ẽ 1 and E 1 are evaluated on atom-centered radial logarithmic grids:


The Kohn-Sham energies evaluated using localized basis sets
These terms correct for the difference in the shape of the all-electron
and pseudo orbitals:
) AE nodal features near the core
) Orthogonality between core and valence states

The essence of the PAW method: there are no cross-terms between


quantities on the regular grid (PW part) and the quantities on the
radial grids (LCAO part)!
The PAW total energy (cont.)
The PS orbitals (plane waves!) are the self-consistent solutions of
⇣ 1 X ⌘ ⇣ X ⌘
+ Vee↵ + |e pj | | en i = ✏n 1 +
pi i(Dij + ...)he |e pj | | en i
pi iQij he
2 ij ij

where
1 1
Dij = h i | 1
+ ve↵ [⇢1v ]| ji h ei | 1
+ vee↵ ⇢1v ]| ej i
[e
2 2
Qij = h i | ji h ei | ej i

and
X X
⇢e1v (r) = ⇢ij h ei |rihr| ej i ⇢1v (r) = ⇢ij h i |rihr| ji
ij ij
with X
⇢ij = fn h en |e pj | en i
pi ihe
n

• The PS orbitals are the variational quantity of the PAW method!


• If the partial waves constitute a complete (enough) basis inside the PAW spheres,
The all-electron orbitals will remain orthogonal to the core states.
Accuracy of the PAW method

Δ-evaluation (PAW vs. FLAPW)


K. Lejaeghere et al., Critical Reviews in Solid State and Materials Sciences 39,1 (2014)
Accuracy of the PAW method (cont.)
Subset of the G2-1 testset of small molecules: deviation of PAW w.r.t. GTO (in kcal/mol)
Electronic minimization:
Reaching the groundstate
Direct minimization of the DFT functional (e.g. Car-Parrinello): start with a set of
trial orbitals (random numbers) and minimize the energy by propagating the orbitals
along the gradient:
✓ ◆
~2
0
Gradient: Fn (r) = r2 + V e↵ (r, { n (r )}) ✏n n (r)
2me

The Self-Consistency-Cycle: start with a trial density, construct the corresponding


Hamiltonian. Solve it to obtain a set of orbitals:
✓ ◆
~2 2
r + V e↵ (r, {⇢(r0 )}) n (r) = ✏n n (r) n = 1, ..., Ne /2
2me

These orbitals define a new density, that defines a new Hamiltonian, …


iterate to self-consistency
Direct minimization vs. SCC
disordered diamond, insulator disordered fcc Fe, metal
energy 2
0
0 n=4
-2
-2 direct
log 10 E-E 0

log 10 E-E 0
-4 direct Car−Parrinello
Car−Parrinello -4
-6 -6 n=1
n=1,2,4,8 n=1 n=8
L -8 -8
n=8
1 self.consistent 1 self.consistent
0 0
|

log 10 |F-F 0 |
0

-1 -1
log 10 |F-F

-2 -2
n=1
-3 -3
-4 -4
0 5 10 15 20 0 10 20 30 40
iteration forces iteration
Direct minimization and charge sloshing
The gradient of the total energy with respect to an orbital is given by:
⇣ X ⌘ X1
|gn i = fn 1 | m ih m | Ĥ| ni + Hnm (fn fm )| mi
m m
2
where
Hnm = h m |Ĥ| n i
E unoccupied charge

Consider two states occupied

k)r k)r
n = ei(kF m = ei(kF + potential

and a small sub-space rotation slowly varying charge


2
(2nd comp. of the gradient): 4 πe / G
strong change in potential
0 0
n = n + s m m = m s n

This leads to a long-wavelength change in the density and a very strong change
in the electrostatic potential (charge sloshing):
i2 k·r 2 s 4⇡e2 i2 k·r
⇢(r) = 2 sRe e VH (r) = Re e
|2 k|2
Stable step size Δs (for a simulation box with largest dimension L):
| k| / 1/L VH / L 2 s / 1/L2
The Self-Consistency-Cycle (cont.)

Two sub-problems:

• Optimization of { n }
Iterative Diagonalization
e.g. RMM-DIIS or
Blocked Davidson

• Construction of ⇢in
Density Mixing
e.g. Broyden mixer
The self-Consistency-Cycle
A naïve algorithm: express the Hamilton matrix in a plane wave basis and
diagonalize it:
H = hG|Ĥ[⇢]|G0 i ! diagonalize H ! { i , ✏i } i = 1, .., NFFT

Self-consistency-cycle:
⇢0 ! H0 ! ⇢0 ! ⇢1 = f (⇢0 , ⇢0 ) ! H1 ! ...

Iterate until: ⇢ = ⇢0

BUT: we do not need NFFT eigenvectors of the Hamiltonian (at a cost of O(NFFT3)).
Actually we only the Nb lowest eigenstates of H, where Nb is of the order
of the number of electrons per unit cell (Nb << NFFT).

Solution: use iterative matrix diagonalization techniques to find the Nb lowest


Eigenvector of the Hamiltonian: RMM-DIIS, blocked-Davidson, etc.
Key ingredients: Subspace diagonalization
and the Residual
• Rayleigh-Ritz: diagonalization of the Nb x Nb subspace
X X
H̄nm Bmk = ✏app
k S̄nm Bmk
with m m

H̄nm = h n |Ĥ| m i S̄nm = h n |Ŝ| m i

X
yields Nb eigenvectors | ¯k i = Bmk | m i with eigenvalues εapp.
m

These eigenstates are the best approximation to the exact Nb lowest


eigenstates of H within the subspace spanned by the current orbitals.

• The Residual:
h n |Ĥ| n i
|R( n )i = (Ĥ ✏app Ŝ)| ni ✏app =
h n |Ŝ| n i

(its norm is measure for the error in the eigenvector)


Blocked-Davidson
• Take a subset of all bands: { n |n = 1, .., N } ) { 1
k |k = 1, .., n1 }
• Extend this subset by adding the (preconditioned) residual vectors
to the presently considered subspace:
1 1 1
{ k /gk = K(H ✏app S) k |k = 1, .., n1 }
• Rayleigh-Ritz optimization (“sub-space rotation”) in the 2n1 dimensional
subspace to determine the n1 lowest eigenvectors:
1 1 2
diag{ k /gk } { k |k = 1, .., n1 }
• Extend subspace with the residuals of { 2
k}

1 1 2 2
{ k /gk /gk = K(H ✏app S) k |k = 1, .., n1 }

• Rayleigh-Ritz optimization ) { 3
k |k = 1, .., n1 }
• Etc …
• The optimized set replaces the original subset:
m
{ k |k = 1, .., n1 } { n |n = 1, .., n1 }

• Continue with next subset: { 1


k |k = n1 + 1, .., n2 }, etc, …

After treating all bands: Rayleigh-Ritz optimization of { n |n = 1, .., N }


Charge density mixing
We want to minimize residual vector
R[⇢in ] = ⇢out [⇢in ] ⇢in
with X
2
⇢out (~r) = wk fnk | nk (~
r)|
occupied

Linearization of the residual around the self-consistent density ⇢sc


(linear response theory):

R[⇢] = J(⇢ ⇢sc ) J=1 U


|{z}
4⇡e2
q2

where J is the charge dielectric function.


Provided we have a good approximation for the charge dielectric function,
minimization of the residual is trivial:

R[⇢in ] = ⇢out [⇢in ] ⇢in = J(⇢in ⇢sc ) 1


⇢sc = ⇢in + J R[⇢in ]
The charge dielectric function

• Use a model dielectric function that is a


good initial approximation for most
systems

1 q 2 AMIX
J ⇡ G1q = max( 2 , AMIN)
q + BMIX

• This is combined with a convergence accelerator

The initial dielectric function is improved using the information accumulated


in each electronic mixing step.
The End

Thank you!

You might also like