Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion source/Makefile.Objects
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,8 @@ OBJS_CELL=atom_pseudo.o\
read_pp_ucell.o\
cal_wfc.o\
cal_ux.o\
distributed_mdcell_reader.o\
md_cell.o\
cif_io.o\
ucell_io.o\

Expand Down Expand Up @@ -437,7 +439,6 @@ OBJS_NEIGHBOR_SEARCH=neighbor_search.o\
bin_manager.o\
domain_decomposition.o\
page_allocator.o\
unitcell_lite.o\


OBJS_ORBITAL=orb_atomic.o\
Expand Down
1 change: 1 addition & 0 deletions source/source_base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ add_library(
tool_title.cpp
ylm.cpp
parallel_common.cpp
communication_domain.cpp
parallel_global.cpp
parallel_comm.cpp
parallel_reduce.cpp
Expand Down
43 changes: 43 additions & 0 deletions source/source_base/communication_domain.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#include "source_base/communication_domain.h"

namespace ModuleBase
{
CommunicationDomain::CommunicationDomain()
{
}

#ifdef __MPI
CommunicationDomain::CommunicationDomain(MPI_Comm communicator) : communicator_(communicator)
{
if (communicator_ != MPI_COMM_NULL)
{
MPI_Comm_rank(communicator_, &rank_);
MPI_Comm_size(communicator_, &size_);
}
}

MPI_Comm CommunicationDomain::communicator() const
{
return communicator_;
}
#endif

int CommunicationDomain::rank() const
{
return rank_;
}

int CommunicationDomain::size() const
{
return size_;
}

CommunicationDomain world_communication_domain()
{
#ifdef __MPI
return CommunicationDomain(MPI_COMM_WORLD);
#else
return CommunicationDomain();
#endif
}
} // namespace ModuleBase
32 changes: 32 additions & 0 deletions source/source_base/communication_domain.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#ifndef COMMUNICATION_DOMAIN_H
#define COMMUNICATION_DOMAIN_H

#ifdef __MPI
#include <mpi.h>
#endif

namespace ModuleBase
{
class CommunicationDomain
{
public:
CommunicationDomain();
#ifdef __MPI
explicit CommunicationDomain(MPI_Comm communicator);
MPI_Comm communicator() const;
#endif
int rank() const;
int size() const;

private:
#ifdef __MPI
MPI_Comm communicator_ = MPI_COMM_NULL;
#endif
int rank_ = 0;
int size_ = 1;
};

CommunicationDomain world_communication_domain();
} // namespace ModuleBase

#endif
2 changes: 2 additions & 0 deletions source/source_cell/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ add_library(
read_pp_upf201.cpp
read_pp_blps.cpp
read_pp_vwr.cpp
distributed_mdcell_reader.cpp
md_cell.cpp
unitcell.cpp
read_atoms.cpp
read_atoms_helper.cpp
Expand Down
Loading
Loading