Files
lammps/src/main.cpp
Richard Berger e5c37bc7cb Implemented optional C++ exceptions in Error class
These can be activated using the -DLAMMPS_EXCEPTIONS compiler flag.
It has no effect for regular execution. However, while using
it as a library, any issued command will capture the exception
and save its error message. This can be queried using the
lammps_has_error() and lammps_get_last_error_message() methods.

The Python wrapper checks these in order to rethrow these errors
as Python exceptions. See issue #146.

(cherry picked from commit 6c154bb0b67a13d38968bc42d31013b97f87db75)
2016-08-24 15:31:30 -04:00

50 lines
1.4 KiB
C++

/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
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.
------------------------------------------------------------------------- */
#include <mpi.h>
#include "lammps.h"
#include "input.h"
#include "error.h"
#include <stdio.h>
#include <stdlib.h>
using namespace LAMMPS_NS;
/* ----------------------------------------------------------------------
main program to drive LAMMPS
------------------------------------------------------------------------- */
int main(int argc, char **argv)
{
MPI_Init(&argc,&argv);
#ifdef LAMMPS_EXCEPTIONS
try {
LAMMPS *lammps = new LAMMPS(argc,argv,MPI_COMM_WORLD);
lammps->input->file();
delete lammps;
} catch(LAMMPSAbortException & ae) {
MPI_Abort(ae.universe, 1);
} catch(LAMMPSException & e) {
MPI_Finalize();
exit(1);
}
#else
LAMMPS *lammps = new LAMMPS(argc,argv,MPI_COMM_WORLD);
lammps->input->file();
delete lammps;
#endif
MPI_Barrier(MPI_COMM_WORLD);
MPI_Finalize();
}