50 return std::vector<Variant>(
views.begin(),
views.end());
54 std::vector<Variant>
out;
55 for (std::size_t i = 0
ul; i <
views.size() / 9ul; ++i) {
56 auto const view =
views.subspan(i * 9ul, 9ul);
59 out.emplace_back(trace / 3.);
73 std::unordered_map<std::string, Variant>
dict;
83 std::vector<double> value{};
84 for (
auto i = 0
u; i < 9u; ++i) {
85 value.emplace_back(
v1[i] +
v2[i]);
87 dict[
"kinetic"] = value;
92 for (std::size_t i = 0
ul; i <
obs_dim; ++i) {
98 auto const n_bonds =
static_cast<int>(
system.bonded_ias->get_next_key());
99 for (
int bond_id = 0; bond_id <
n_bonds; ++bond_id) {
100 if (
system.bonded_ias->get_zero_based_type(bond_id) != 0) {
101 dict[
"bonded," + std::to_string(bond_id)] =
107 system.nonbonded_ias->get_max_seen_particle_type() + 1;
110 auto const indices = std::to_string(i) +
"," + std::to_string(
j);
118#ifdef ESPRESSO_ELECTROSTATICS
121 for (std::size_t i = 0
ul; i <
values.size(); ++i) {
122 dict[
"coulomb," + std::to_string(i)] =
values[i];
127#ifdef ESPRESSO_DIPOLES
130 for (std::size_t i = 0
ul; i <
values.size(); ++i) {
131 dict[
"dipolar," + std::to_string(i)] =
values[i];
136#ifdef ESPRESSO_VIRTUAL_SITES
139 for (std::size_t i = 0
ul; i <
values.size(); ++i) {
140 dict[
"virtual_sites," + std::to_string(i)] =
values[i];
148 for (std::size_t i = 0
ul; i <
values.size(); ++i) {
160 if (
name ==
"calculate_energy") {
161 auto const obs =
system.calculate_energy();
164 if (
name ==
"calculate_scalar_pressure") {
165 auto const obs =
system.calculate_pressure();
168 if (
name ==
"calculate_pressure_tensor") {
169 auto const obs =
system.calculate_pressure();
Data structures for bonded interactions.
Observable for the pressure and energy.
Variant do_call_method(std::string const &name, VariantMap const ¶meters) override
std::string_view name() const
auto const & get_system() const
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
static auto get_summary(::System::System const &system, Observable_stat const &obs, bool const calc_sp)
Generate an observable summary.
std::unordered_map< std::string, Variant > VariantMap
Various procedures concerning interactions between particles.
Recursive variant implementation.