mirror of https://github.com/lammps/lammps.git
117 lines
3.5 KiB
C++
117 lines
3.5 KiB
C++
/* -*- c++ -*- ----------------------------------------------------------
|
|
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
|
https://www.lammps.org/ Sandia National Laboratories
|
|
LAMMPS Development team: developers@lammps.org
|
|
|
|
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
|
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
|
certain rights in this software. This software is distributed under
|
|
the GNU General Public License.
|
|
|
|
See the README file in the top-level LAMMPS directory.
|
|
------------------------------------------------------------------------- */
|
|
|
|
#ifndef TEST_CONFIG_H
|
|
#define TEST_CONFIG_H
|
|
|
|
#include <set>
|
|
#include <sstream>
|
|
#include <string>
|
|
#include <utility>
|
|
#include <vector>
|
|
|
|
struct coord_t {
|
|
double x, y, z;
|
|
};
|
|
|
|
struct stress_t {
|
|
double xx, yy, zz, xy, xz, yz;
|
|
};
|
|
|
|
class TestConfig {
|
|
public:
|
|
std::string lammps_version;
|
|
std::string date_generated;
|
|
std::string basename;
|
|
double epsilon;
|
|
std::set<std::string> skip_tests;
|
|
std::vector<std::pair<std::string, std::string>> prerequisites;
|
|
std::vector<std::string> pre_commands;
|
|
std::vector<std::string> post_commands;
|
|
std::vector<std::string> tags;
|
|
std::string input_file;
|
|
std::string pair_style;
|
|
std::string bond_style;
|
|
std::string angle_style;
|
|
std::string dihedral_style;
|
|
std::string improper_style;
|
|
std::string kspace_style;
|
|
std::vector<std::string> pair_coeff;
|
|
std::vector<std::string> bond_coeff;
|
|
std::vector<std::string> angle_coeff;
|
|
std::vector<std::string> dihedral_coeff;
|
|
std::vector<std::string> improper_coeff;
|
|
std::vector<double> equilibrium;
|
|
std::vector<std::pair<std::string, int>> extract;
|
|
int natoms;
|
|
double init_energy;
|
|
double run_energy;
|
|
double init_vdwl;
|
|
double run_vdwl;
|
|
double init_coul;
|
|
double run_coul;
|
|
stress_t init_stress;
|
|
stress_t run_stress;
|
|
double global_scalar;
|
|
std::vector<double> global_vector;
|
|
std::vector<coord_t> init_forces;
|
|
std::vector<coord_t> run_forces;
|
|
std::vector<coord_t> run_pos;
|
|
std::vector<coord_t> restart_pos;
|
|
std::vector<coord_t> run_vel;
|
|
std::vector<coord_t> restart_vel;
|
|
|
|
TestConfig() :
|
|
lammps_version(""), date_generated(""), basename(""), epsilon(1.0e-14), input_file(""),
|
|
pair_style("zero"), bond_style("zero"), angle_style("zero"), dihedral_style("zero"),
|
|
improper_style("zero"), kspace_style("none"), natoms(0), init_energy(0), run_energy(0),
|
|
init_vdwl(0), run_vdwl(0), init_coul(0), run_coul(0), init_stress({0, 0, 0, 0, 0, 0}),
|
|
run_stress({0, 0, 0, 0, 0, 0}), global_scalar(0)
|
|
{
|
|
skip_tests.clear();
|
|
prerequisites.clear();
|
|
pre_commands.clear();
|
|
post_commands.clear();
|
|
pair_coeff.clear();
|
|
bond_coeff.clear();
|
|
angle_coeff.clear();
|
|
dihedral_coeff.clear();
|
|
improper_coeff.clear();
|
|
extract.clear();
|
|
init_forces.clear();
|
|
run_forces.clear();
|
|
run_pos.clear();
|
|
restart_pos.clear();
|
|
run_vel.clear();
|
|
restart_vel.clear();
|
|
global_vector.clear();
|
|
}
|
|
TestConfig(const TestConfig &) = delete;
|
|
TestConfig &operator=(const TestConfig &) = delete;
|
|
|
|
std::string tags_line() const
|
|
{
|
|
if (tags.size() > 0) {
|
|
std::stringstream line;
|
|
line << tags[0];
|
|
for (size_t i = 1; i < tags.size(); i++) {
|
|
line << ", " << tags[i];
|
|
}
|
|
return line.str();
|
|
}
|
|
return "generated";
|
|
}
|
|
};
|
|
|
|
#endif
|