void Bead_ParticleSet::CopyToBead(Bead& b,vector<TrialWaveFunction*> &Psi) { assert(R.size()==b.R.size()); assert(b.Drift.size()==Drift.size()); assert(BeadSignWgt.size()==b.BeadSignWgt.size()); assert(Gradients.size()==b.Gradients.size()); assert(Laplacians.size()==b.Laplacians.size()); assert(b.Action.size()==Action.size()); copy(BeadSignWgt.begin(),BeadSignWgt.end(),b.BeadSignWgt.begin()); for(int i=0; i<Gradients.size(); i++) *(b.Gradients[i]) = *Gradients[i]; for(int i=0; i<Laplacians.size(); i++) *(b.Laplacians[i])=*Laplacians[i]; for(int i=0; i<DriftVectors.size(); i++) *(b.DriftVectors[i]) = *DriftVectors[i]; b.TransProb[0]=TransProb[0]; b.TransProb[1]=TransProb[1]; for (int ipsi=0;ipsi<nPsi;ipsi++) for (int i=0;i<3;i++) b.Action(ipsi,i)=Action(ipsi,i); // b.Action=Action; b.Drift=Drift; b.R=R; b.Properties=Properties; b.Tau_eff = Tau_eff; b.ScaleDrift = ScaleDrift; }
void Bead_ParticleSet::CopyFromBead(Bead& b,vector<TrialWaveFunction*> &Psi) { assert(R.size()==b.R.size()); assert(BeadSignWgt.size()==b.BeadSignWgt.size()); assert(Gradients.size()==b.Gradients.size()); assert(Laplacians.size()==b.Laplacians.size()); assert(b.Action.size()==Action.size()); assert(b.Drift.size()==Drift.size()); R=b.R; copy(b.BeadSignWgt.begin(),b.BeadSignWgt.end(),BeadSignWgt.begin()); for(int i=0; i<b.Gradients.size(); i++) *Gradients[i] = *(b.Gradients[i]); for(int i=0; i<b.Laplacians.size(); i++) *Laplacians[i] = *(b.Laplacians[i]); for(int i=0; i<b.DriftVectors.size(); i++) *DriftVectors[i] = *(b.DriftVectors[i]); TransProb[0]=b.TransProb[0]; TransProb[1]=b.TransProb[1]; for (int ipsi=0;ipsi<nPsi;ipsi++) for (int i=0;i<3;i++) Action(ipsi,i)=b.Action(ipsi,i); // Action=b.Action; Drift=b.Drift; Tau_eff=b.Tau_eff; ScaleDrift = b.ScaleDrift; Properties=b.Properties; }