Changeset 9bb6e3 for src/Potentials/PartialNucleiChargeFitter.cpp
- Timestamp:
- Oct 10, 2016, 1:14:41 PM (9 years ago)
- Branches:
- Fix_FitPartialCharges
- Children:
- 9c02a8
- Parents:
- 489b9c
- File:
- 
      - 1 edited
 
 - 
          
  src/Potentials/PartialNucleiChargeFitter.cpp (modified) (5 diffs)
 
Legend:
- Unmodified
- Added
- Removed
- 
      src/Potentials/PartialNucleiChargeFitter.cppr489b9c r9bb6e3 309 309 VectorContent PartialNucleiChargeFitter::calculateResiduum() 310 310 { 311 // need to reconstruct matrix as it was overwritten by SVD 312 if (PotentialFromCharges == NULL) 313 constructMatrix(); 311 constructMatrix(); 314 312 315 313 // calculate residual vector … … 319 317 } 320 318 321 double PartialNucleiChargeFitter::operator()()319 void PartialNucleiChargeFitter::prepareCharges(const size_t _size) 322 320 { 323 321 // prepare PartialCharges … … 326 324 PartialCharges = NULL; 327 325 } 328 PartialCharges = new VectorContent(positions.size()); 326 PartialCharges = new VectorContent(_size); 327 } 328 329 double PartialNucleiChargeFitter::operator()() 330 { 331 prepareCharges(positions.size()); 329 332 330 333 // set up over-determined system's problem matrix A for Ax=b … … 341 344 LOG(2, "DEBUG: Norm of right-hand side is " << SampledPotential.Norm()); 342 345 343 // calculate residuum (force matrix reconstruction) 344 delete PotentialFromCharges; 346 // calculate residuum (forces matrix reconstruction) 345 347 VectorContent residuum = calculateResiduum(); 346 348 … … 379 381 380 382 return residuum.Norm(); 383 } 384 385 bool 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; 381 398 } 382 399 
  Note:
 See   TracChangeset
 for help on using the changeset viewer.
  
