make communicator protected and use accessor instead. simplify

This commit is contained in:
Axel Kohlmeyer
2023-04-15 21:54:13 -04:00
parent baeed85468
commit 8086228976
5 changed files with 17 additions and 18 deletions

View File

@ -279,8 +279,7 @@ void Error::done(int status)
}
/* ----------------------------------------------------------------------
return the last error message reported by LAMMPS (only used if
compiled with -DLAMMPS_EXCEPTIONS)
return the last error message reported by LAMMPS
------------------------------------------------------------------------- */
std::string Error::get_last_error() const
@ -289,8 +288,7 @@ std::string Error::get_last_error() const
}
/* ----------------------------------------------------------------------
return the type of the last error reported by LAMMPS (only used if
compiled with -DLAMMPS_EXCEPTIONS)
return the type of the last error reported by LAMMPS
------------------------------------------------------------------------- */
ErrorType Error::get_last_error_type() const
@ -300,10 +298,9 @@ ErrorType Error::get_last_error_type() const
/* ----------------------------------------------------------------------
set the last error message and error type
(only used if compiled with -DLAMMPS_EXCEPTIONS)
------------------------------------------------------------------------- */
void Error::set_last_error(const std::string &msg, ErrorType type)
void Error::set_last_error(const char *msg, ErrorType type)
{
last_error_message = msg;
last_error_type = type;

View File

@ -64,7 +64,7 @@ class Error : protected Pointers {
std::string get_last_error() const;
ErrorType get_last_error_type() const;
void set_last_error(const std::string &msg, ErrorType type = ERROR_NORMAL);
void set_last_error(const char *msg, ErrorType type = ERROR_NORMAL);
private:
std::string last_error_message;

View File

@ -22,21 +22,23 @@ namespace LAMMPS_NS {
class LAMMPSException : public std::exception {
public:
std::string message;
LAMMPSException(const std::string &msg) : message(msg) {}
const char *what() const noexcept override { return message.c_str(); }
protected:
std::string message;
};
class LAMMPSAbortException : public LAMMPSException {
public:
MPI_Comm universe;
LAMMPSAbortException(const std::string &msg, MPI_Comm _universe) :
LAMMPSException(msg), universe(_universe)
{
}
MPI_Comm get_universe() const { return universe; }
protected:
MPI_Comm universe;
};
enum ErrorType { ERROR_NONE = 0, ERROR_NORMAL = 1, ERROR_ABORT = 2 };

View File

@ -97,15 +97,15 @@ static void ptr_argument_warning()
#define END_CAPTURE \
catch(LAMMPSAbortException &ae) { \
int nprocs = 0; \
MPI_Comm_size(ae.universe, &nprocs ); \
MPI_Comm_size(ae.get_universe(), &nprocs ); \
\
if (nprocs > 1) { \
error->set_last_error(ae.message, ERROR_ABORT); \
error->set_last_error(ae.what(), ERROR_ABORT); \
} else { \
error->set_last_error(ae.message, ERROR_NORMAL); \
error->set_last_error(ae.what(), ERROR_NORMAL); \
} \
} catch(LAMMPSException &e) { \
error->set_last_error(e.message, ERROR_NORMAL); \
error->set_last_error(e.what(), ERROR_NORMAL); \
}
// ----------------------------------------------------------------------
@ -172,7 +172,7 @@ void *lammps_open(int argc, char **argv, MPI_Comm comm, void **ptr)
lmp = new LAMMPS(argc, argv, comm);
if (ptr) *ptr = (void *) lmp;
} catch(LAMMPSException &e) {
fprintf(stderr, "LAMMPS Exception: %s\n", e.message);
fprintf(stderr, "LAMMPS Exception: %s\n", e.what());
if (ptr) *ptr = nullptr;
} catch (fmt::format_error &fe) {
fprintf(stderr, "fmt::format_error: %s\n", fe.what());

View File

@ -78,7 +78,7 @@ int main(int argc, char **argv)
delete lammps;
} catch (LAMMPSAbortException &ae) {
finalize();
MPI_Abort(ae.universe, 1);
MPI_Abort(ae.get_universe(), 1);
} catch (LAMMPSException &) {
finalize();
MPI_Barrier(lammps_comm);