111 virtual void deriv(
const GaugeField &
U,GaugeField & dSdU)
120 FermionField X(fgrid);
121 FermionField Y(fgrid);
122 FermionField tmp(fgrid);
124 GaugeField force(ugrid);
126 FermionField DobiDdbPhi(fgrid);
127 FermionField DoiDdDobiDdbPhi(fgrid);
128 FermionField DoidP_Phi(fgrid);
129 FermionField DobidDddDoidP_Phi(fgrid);
131 FermionField P_Phi(fgrid);
135 NumOp.dOmegaBarInv(tmp,DobiDdbPhi);
136 NumOp.dBoundary(DobiDdbPhi,tmp);
137 NumOp.dOmegaInv(tmp,DoiDdDobiDdbPhi);
138 P_Phi =
Phi - DoiDdDobiDdbPhi;
139 NumOp.ProjectBoundaryBar(P_Phi);
142 NumOp.dOmegaDagInv(P_Phi,DoidP_Phi);
143 NumOp.dBoundaryDag(DoidP_Phi,tmp);
144 NumOp.dOmegaBarDagInv(tmp,DobidDddDoidP_Phi);
145 NumOp.dBoundaryBarDag(DobidDddDoidP_Phi,tmp);
148 Y = DobidDddDoidP_Phi;
149 NumOp.DirichletFermOpD.MDeriv(force,Y,X,
DaggerNo); dSdU=force;
150 NumOp.DirichletFermOpD.MDeriv(force,X,Y,
DaggerYes); dSdU=dSdU+force;
154 NumOp.DirichletFermOpD.MDeriv(force,Y,X,
DaggerNo); dSdU=dSdU+force;
155 NumOp.DirichletFermOpD.MDeriv(force,X,Y,
DaggerYes); dSdU=dSdU+force;