Ignore:
Timestamp:
Oct 10, 2016, 1:14:41 PM (9 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Fix_FitPartialCharges
Children:
9c02a8
Parents:
489b9c
Message:

tempcommit: Merge with fdc56798f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Potentials/PartialNucleiChargeFitter.cpp

    r489b9c r9bb6e3  
    309309VectorContent PartialNucleiChargeFitter::calculateResiduum()
    310310{
    311   // need to reconstruct matrix as it was overwritten by SVD
    312   if (PotentialFromCharges == NULL)
    313     constructMatrix();
     311  constructMatrix();
    314312
    315313  // calculate residual vector
     
    319317}
    320318
    321 double PartialNucleiChargeFitter::operator()()
     319void PartialNucleiChargeFitter::prepareCharges(const size_t _size)
    322320{
    323321  // prepare PartialCharges
     
    326324    PartialCharges = NULL;
    327325  }
    328   PartialCharges = new VectorContent(positions.size());
     326  PartialCharges = new VectorContent(_size);
     327}
     328
     329double PartialNucleiChargeFitter::operator()()
     330{
     331  prepareCharges(positions.size());
    329332
    330333  // set up over-determined system's problem matrix A for Ax=b
     
    341344  LOG(2, "DEBUG: Norm of right-hand side is " << SampledPotential.Norm());
    342345
    343   // calculate residuum (force matrix reconstruction)
    344   delete PotentialFromCharges;
     346  // calculate residuum (forces matrix reconstruction)
    345347  VectorContent residuum = calculateResiduum();
    346348
     
    379381
    380382  return residuum.Norm();
     383}
     384
     385bool PartialNucleiChargeFitter::setCharges(const charges_t &_charges)
     386{
     387  // check sizes
     388  if (positions.size() != _charges.size()) {
     389    return false;
     390  }
     391  // (re-)allocate memory
     392  prepareCharges(positions.size());
     393  // and place charges in vector
     394  for(size_t i=0;i<_charges.size();++i)
     395    (*PartialCharges)[i] = _charges[i];
     396
     397  return true;
    381398}
    382399
Note: See TracChangeset for help on using the changeset viewer.