diff --git a/src/Reader/XYZReader.cpp b/src/Reader/XYZReader.cpp index d2930c3e3ea0c3a3892e99c92e92c39eefec295b..84ce7a8addd1bc256cc5806ee4b42159783329b7 100644 --- a/src/Reader/XYZReader.cpp +++ b/src/Reader/XYZReader.cpp @@ -220,17 +220,21 @@ void lib4neuro::XYZReader::transform_input_to_acsf(std::unordered_map<ELEMENT_SY inputs_max[el.first] = std::vector<double>(element_description[el.first]->getSymmetryFunctions()->size()); std::fill(inputs_min[el.first].begin(), inputs_min[el.first].end(), std::numeric_limits<double>::max()); std::fill(inputs_max[el.first].begin(), inputs_max[el.first].end(), std::numeric_limits<double>::min()); + + // std::cout << "new element: " << inputs_min[el.first].size() << std::endl; } std::vector<ELEMENT_SYMBOL> element_order;//used for input ordering for(auto configuration : *data) { /* Iterate over configurations */ + // std::cout << "A" << std::endl; /* update the output value ranges */ - for( auto j = 0; j < outputs_min.size(); ++j ){ + for( size_t j = 0; j < outputs_min.size(); ++j ){ outputs_min[ j ] = std::min( outputs_min[ j ], configuration.second[ j ] ); outputs_max[ j ] = std::max( outputs_max[ j ], configuration.second[ j ] ); } + // std::cout << "B" << std::endl; idx = 0; particles.clear(); @@ -254,23 +258,29 @@ void lib4neuro::XYZReader::transform_input_to_acsf(std::unordered_map<ELEMENT_SY particles.emplace_back(std::make_pair(el, cartesian_coords)); } + // std::cout << "C" << std::endl; /* Transform Cartesian coordinates into ACSFs */ std::vector<double> single_particle_coords; std::vector<std::pair<ELEMENT_SYMBOL, std::vector<double>>> acsf_coords_prep; for(size_t i = 0; i < particles.size(); i++) { /* Iterate over all the particles */ single_particle_coords.clear(); + // std::cout << "D" << std::endl; /* Compute vector of ACSF coordinates for a single particle */ for (auto sym_func : *element_description[particles.at(i).first]->getSymmetryFunctions()) { + // std::cout << "E1" << std::endl; single_particle_coords.emplace_back(sym_func->eval(i, particles)); + // std::cout << "E2" << std::endl; } - + + // std::cout << "X" << std::endl; /* update the input value ranges */ for( auto j = 0; j < single_particle_coords.size(); ++j ){ inputs_min[particles.at(i).first][ j ] = std::min(inputs_min[particles.at(i).first][ j ], single_particle_coords[ j ]); inputs_max[particles.at(i).first][ j ] = std::max(inputs_max[particles.at(i).first][ j ], single_particle_coords[ j ]); } + // std::cout << "Y" << std::endl; /* Store coordinates in a canonic order */ unsigned int element_ind = 0; diff --git a/src/SymmetryFunction/SymmetryFunction.cpp b/src/SymmetryFunction/SymmetryFunction.cpp index 6d0f65243de8724654fe72e63083e83e27333c12..521908e4cf4285281f98e6c0eac0de392fbcaccb 100644 --- a/src/SymmetryFunction/SymmetryFunction.cpp +++ b/src/SymmetryFunction/SymmetryFunction.cpp @@ -156,19 +156,19 @@ double lib4neuro::G2::eval(unsigned int particle_ind, double extension = this->parameters.at(SYMMETRY_FUNCTION_PARAMETER::EXTENSION); double shift = this->parameters.at(SYMMETRY_FUNCTION_PARAMETER::SHIFT); -// std::cout << "particle " << particle_ind << "("; -// for( auto el: cartesian_coord.at(particle_ind).second ){ -// std::cout << el << " "; -// } -// std::cout << ")"; + // std::cout << "particle " << particle_ind << "("; + // for( auto el: cartesian_coord.at(particle_ind).second ){ + // std::cout << el << " "; + // } + // std::cout << ")"; for(size_t i = 0; i < cartesian_coord.size(); i++) { if(i == particle_ind) { continue; } -// std::cout << " comparing with particle " << i << "("; -// for( auto el: cartesian_coord.at(i).second ){ -// std::cout << el << " "; -// } + // std::cout << " comparing with particle " << i << "("; + // for( auto el: cartesian_coord.at(i).second ){ + // std::cout << el << " "; + // } /* Compute Euclid distance of i-th particle with the others */ distance = this->euclid_distance(cartesian_coord.at(particle_ind).second, cartesian_coord.at(i).second); diff --git a/src/examples/acsf.cpp b/src/examples/acsf.cpp index 745802bf7a25b9e67bb2136cc7fc478572c05774..a17df681e29a30568f5fb8977c0d273dda7fead7 100644 --- a/src/examples/acsf.cpp +++ b/src/examples/acsf.cpp @@ -201,7 +201,6 @@ void dimer_test( std::vector<l4n::G2> G2functions; for( size_t i = 0; i < g2_extensions.size(); ++i ){ G2functions.emplace_back( l4n::G2(&g2_cutofffunctions[ i ], g2_extensions[ i ], g2_shifts[ i ] ) ); - helium_sym_funcs[ i ] = &G2functions[ i ]; } /* Specify G2 symmetry functions */ @@ -209,6 +208,12 @@ void dimer_test( auto shift = G2functions.size(); for( size_t i = 0; i < g5_extensions.size(); ++i ){ G5functions.emplace_back( l4n::G5(&g5_cutofffunctions[ i ], g5_extensions[ i ], g5_shiftsmax[ i ], g5_angles[ i ] ) ); + } + + for( size_t i = 0; i < g2_extensions.size(); ++i ){ + helium_sym_funcs[ i ] = &G2functions[ i ]; + } + for( size_t i = 0; i < g5_extensions.size(); ++i ){ helium_sym_funcs[ i + shift ] = &G5functions[ i ]; }