Gromacs
2026.0-dev-20241106-9ba7f4d
|
#include "gmxpre.h"
#include "box.h"
#include "config.h"
#include <cmath>
#include <cstdio>
#include <filesystem>
#include <memory>
#include "gromacs/domdec/domdec.h"
#include "gromacs/domdec/domdec_network.h"
#include "gromacs/domdec/domdec_struct.h"
#include "gromacs/domdec/nsgrid.h"
#include "gromacs/gmxlib/network.h"
#include "gromacs/math/functions.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/pbcutil/pbc.h"
#include "gromacs/topology/block.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/real.h"
#include "domdec_internal.h"
This file defines functions used by the domdec module for (bounding) box and pbc information generation.
Functions | |
static void | calc_pos_av_stddev (gmx::ArrayRef< const gmx::RVec > x, rvec av, rvec stddev, const MPI_Comm *mpiCommunicator) |
Calculates the average and standard deviation in 3D of atoms. | |
static void | set_tric_dir (const gmx::IVec *numDomains, gmx_ddbox_t *ddbox, const matrix box) |
Determines if dimensions require triclinic treatment and stores this info in ddbox. | |
static void | low_set_ddbox (int numPbcDimensions, int numBoundedDimensions, const gmx::IVec *numDomains, const matrix box, bool calculateUnboundedSize, gmx::ArrayRef< const gmx::RVec > x, const MPI_Comm *mpiCommunicator, gmx_ddbox_t *ddbox) |
This function calculates bounding box and pbc info and populates ddbox. | |
void | set_ddbox (const gmx_domdec_t &dd, bool mainRankHasTheSystemState, const matrix box, bool calculateUnboundedSize, gmx::ArrayRef< const gmx::RVec > x, gmx_ddbox_t *ddbox) |
Set the box and PBC data in ddbox . | |
void | set_ddbox_cr (DDRole ddRole, MPI_Comm communicator, const gmx::IVec *numDomains, const t_inputrec &ir, const matrix box, gmx::ArrayRef< const gmx::RVec > x, gmx_ddbox_t *ddbox) |
Set the box and PBC data in ddbox . | |
gmx_ddbox_t | get_ddbox (const gmx::IVec &numDomains, const t_inputrec &ir, const matrix box, gmx::ArrayRef< const gmx::RVec > x) |
Computes and returns a domain decomposition box. | |