forked from lijiext/lammps
353 lines
9.7 KiB
C++
353 lines
9.7 KiB
C++
/* -*- 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.
|
|
------------------------------------------------------------------------- */
|
|
|
|
#ifndef LMP_INPUT_H
|
|
#define LMP_INPUT_H
|
|
|
|
#include "stdio.h"
|
|
#include "pointers.h"
|
|
#include <map>
|
|
#include <string>
|
|
|
|
namespace LAMMPS_NS {
|
|
|
|
class Input : protected Pointers {
|
|
public:
|
|
int narg; // # of command args
|
|
char **arg; // parsed args for command
|
|
class Variable *variable; // defined variables
|
|
|
|
Input(class LAMMPS *, int, char **);
|
|
~Input();
|
|
void file(); // process all input
|
|
void file(const char *); // process an input script
|
|
char *one(const char *); // process a single command
|
|
void substitute(char *&, char *&, int &, int &, int);
|
|
// substitute for variables in a string
|
|
|
|
private:
|
|
int me; // proc ID
|
|
char *command; // ptr to current command
|
|
int maxarg; // max # of args in arg
|
|
char *line,*copy,*work; // input line & copy and work string
|
|
int maxline,maxcopy,maxwork; // max lengths of char strings
|
|
int echo_screen; // 0 = no, 1 = yes
|
|
int echo_log; // 0 = no, 1 = yes
|
|
int nfile,maxfile; // current # and max # of open input files
|
|
int label_active; // 0 = no label, 1 = looking for label
|
|
char *labelstr; // label string being looked for
|
|
int jump_skip; // 1 if skipping next jump, 0 otherwise
|
|
int ifthenelse_flag; // 1 if executing commands inside an if-then-else
|
|
|
|
FILE **infiles; // list of open input files
|
|
|
|
typedef void (*CommandCreator)(LAMMPS *, int, char **);
|
|
std::map<std::string,CommandCreator> *command_map;
|
|
|
|
template <typename T> static void command_creator(LAMMPS *, int, char **);
|
|
|
|
void parse(); // parse an input text line
|
|
char *nextword(char *, char **); // find next word in string with quotes
|
|
int numtriple(char *); // count number of triple quotes
|
|
void reallocate(char *&, int &, int); // reallocate a char string
|
|
int execute_command(); // execute a single command
|
|
|
|
void clear(); // input script commands
|
|
void echo();
|
|
void ifthenelse();
|
|
void include();
|
|
void jump();
|
|
void label();
|
|
void log();
|
|
void next_command();
|
|
void partition();
|
|
void print();
|
|
void python();
|
|
void quit();
|
|
void shell();
|
|
void variable_command();
|
|
|
|
void angle_coeff(); // LAMMPS commands
|
|
void angle_style();
|
|
void atom_modify();
|
|
void atom_style();
|
|
void bond_coeff();
|
|
void bond_style();
|
|
void boundary();
|
|
void box();
|
|
void comm_modify();
|
|
void comm_style();
|
|
void compute();
|
|
void compute_modify();
|
|
void dielectric();
|
|
void dihedral_coeff();
|
|
void dihedral_style();
|
|
void dimension();
|
|
void dump();
|
|
void dump_modify();
|
|
void fix();
|
|
void fix_modify();
|
|
void group_command();
|
|
void improper_coeff();
|
|
void improper_style();
|
|
void kspace_modify();
|
|
void kspace_style();
|
|
void lattice();
|
|
void mass();
|
|
void min_modify();
|
|
void min_style();
|
|
void molecule();
|
|
void neigh_modify();
|
|
void neighbor_command();
|
|
void newton();
|
|
void package();
|
|
void pair_coeff();
|
|
void pair_modify();
|
|
void pair_style();
|
|
void pair_write();
|
|
void processors();
|
|
void region();
|
|
void reset_timestep();
|
|
void restart();
|
|
void run_style();
|
|
void special_bonds();
|
|
void suffix();
|
|
void thermo();
|
|
void thermo_modify();
|
|
void thermo_style();
|
|
void timestep();
|
|
void uncompute();
|
|
void undump();
|
|
void unfix();
|
|
void units();
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
/* ERROR/WARNING messages:
|
|
|
|
E: Label wasn't found in input script
|
|
|
|
Self-explanatory.
|
|
|
|
E: Unknown command: %s
|
|
|
|
The command is not known to LAMMPS. Check the input script.
|
|
|
|
E: Invalid use of library file() function
|
|
|
|
This function is called thru the library interface. This
|
|
error should not occur. Contact the developers if it does.
|
|
|
|
E: Cannot open input script %s
|
|
|
|
Self-explanatory.
|
|
|
|
E: Unbalanced quotes in input line
|
|
|
|
No matching end double quote was found following a leading double
|
|
quote.
|
|
|
|
E: Input line quote not followed by whitespace
|
|
|
|
An end quote must be followed by whitespace.
|
|
|
|
E: Invalid variable name
|
|
|
|
Variable name used in an input script line is invalid.
|
|
|
|
E: Invalid immediate variable
|
|
|
|
Syntax of immediate value is incorrect.
|
|
|
|
E: Substitution for illegal variable
|
|
|
|
Input script line contained a variable that could not be substituted
|
|
for.
|
|
|
|
E: Illegal ... command
|
|
|
|
Self-explanatory. Check the input script syntax and compare to the
|
|
documentation for the command. You can use -echo screen as a
|
|
command-line option when running LAMMPS to see the offending line.
|
|
|
|
E: Cannot use include command within an if command
|
|
|
|
Self-explanatory.
|
|
|
|
E: Cannot open logfile %s
|
|
|
|
The LAMMPS log file specified in the input script cannot be opened.
|
|
Check that the path and name are correct.
|
|
|
|
E: Cannot open print file %s
|
|
|
|
Self-explanatory.
|
|
|
|
E: Angle_coeff command before simulation box is defined
|
|
|
|
The angle_coeff command cannot be used before a read_data,
|
|
read_restart, or create_box command.
|
|
|
|
E: Angle_coeff command before angle_style is defined
|
|
|
|
Coefficients cannot be set in the data file or via the angle_coeff
|
|
command until an angle_style has been assigned.
|
|
|
|
E: Angle_coeff command when no angles allowed
|
|
|
|
The chosen atom style does not allow for angles to be defined.
|
|
|
|
E: Angle_style command when no angles allowed
|
|
|
|
The chosen atom style does not allow for angles to be defined.
|
|
|
|
E: Atom_style command after simulation box is defined
|
|
|
|
The atom_style command cannot be used after a read_data,
|
|
read_restart, or create_box command.
|
|
|
|
E: Bond_coeff command before simulation box is defined
|
|
|
|
The bond_coeff command cannot be used before a read_data,
|
|
read_restart, or create_box command.
|
|
|
|
E: Bond_coeff command before bond_style is defined
|
|
|
|
Coefficients cannot be set in the data file or via the bond_coeff
|
|
command until an bond_style has been assigned.
|
|
|
|
E: Bond_coeff command when no bonds allowed
|
|
|
|
The chosen atom style does not allow for bonds to be defined.
|
|
|
|
E: Bond_style command when no bonds allowed
|
|
|
|
The chosen atom style does not allow for bonds to be defined.
|
|
|
|
E: Boundary command after simulation box is defined
|
|
|
|
The boundary command cannot be used after a read_data, read_restart,
|
|
or create_box command.
|
|
|
|
E: Box command after simulation box is defined
|
|
|
|
The box command cannot be used after a read_data, read_restart, or
|
|
create_box command.
|
|
|
|
E: Dihedral_coeff command before simulation box is defined
|
|
|
|
The dihedral_coeff command cannot be used before a read_data,
|
|
read_restart, or create_box command.
|
|
|
|
E: Dihedral_coeff command before dihedral_style is defined
|
|
|
|
Coefficients cannot be set in the data file or via the dihedral_coeff
|
|
command until an dihedral_style has been assigned.
|
|
|
|
E: Dihedral_coeff command when no dihedrals allowed
|
|
|
|
The chosen atom style does not allow for dihedrals to be defined.
|
|
|
|
E: Dihedral_style command when no dihedrals allowed
|
|
|
|
The chosen atom style does not allow for dihedrals to be defined.
|
|
|
|
E: Dimension command after simulation box is defined
|
|
|
|
The dimension command cannot be used after a read_data,
|
|
read_restart, or create_box command.
|
|
|
|
E: Improper_coeff command before simulation box is defined
|
|
|
|
The improper_coeff command cannot be used before a read_data,
|
|
read_restart, or create_box command.
|
|
|
|
E: Improper_coeff command before improper_style is defined
|
|
|
|
Coefficients cannot be set in the data file or via the improper_coeff
|
|
command until an improper_style has been assigned.
|
|
|
|
E: Improper_coeff command when no impropers allowed
|
|
|
|
The chosen atom style does not allow for impropers to be defined.
|
|
|
|
E: Improper_style command when no impropers allowed
|
|
|
|
The chosen atom style does not allow for impropers to be defined.
|
|
|
|
E: KSpace style has not yet been set
|
|
|
|
Cannot use kspace_modify command until a kspace style is set.
|
|
|
|
E: Mass command before simulation box is defined
|
|
|
|
The mass command cannot be used before a read_data, read_restart, or
|
|
create_box command.
|
|
|
|
E: Min_style command before simulation box is defined
|
|
|
|
The min_style command cannot be used before a read_data, read_restart,
|
|
or create_box command.
|
|
|
|
E: Newton bond change after simulation box is defined
|
|
|
|
The newton command cannot be used to change the newton bond value
|
|
after a read_data, read_restart, or create_box command.
|
|
|
|
E: Package command after simulation box is defined
|
|
|
|
The package command cannot be used afer a read_data, read_restart, or
|
|
create_box command.
|
|
|
|
E: Package cuda command without USER-CUDA installed
|
|
|
|
The USER-CUDA package must be installed via "make yes-user-cuda"
|
|
before LAMMPS is built.
|
|
|
|
E: Pair_coeff command before simulation box is defined
|
|
|
|
The pair_coeff command cannot be used before a read_data,
|
|
read_restart, or create_box command.
|
|
|
|
E: Pair_coeff command before pair_style is defined
|
|
|
|
Self-explanatory.
|
|
|
|
E: Pair_modify command before pair_style is defined
|
|
|
|
Self-explanatory.
|
|
|
|
E: Pair_write command before pair_style is defined
|
|
|
|
Self-explanatory.
|
|
|
|
E: Processors command after simulation box is defined
|
|
|
|
The processors command cannot be used after a read_data, read_restart,
|
|
or create_box command.
|
|
|
|
E: Run_style command before simulation box is defined
|
|
|
|
The run_style command cannot be used before a read_data,
|
|
read_restart, or create_box command.
|
|
|
|
E: Units command after simulation box is defined
|
|
|
|
The units command cannot be used after a read_data, read_restart, or
|
|
create_box command.
|
|
|
|
*/
|