コード例 #1
0
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;

}
コード例 #2
0
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;

 }