19 #include <coreneuron/engine.h>
30 #ifdef ADDITIONAL_MECHS
73 std::string corenrn_mpi_lib;
76 if (mpi_lib !=
nullptr) {
77 corenrn_mpi_lib = std::string(mpi_lib);
82 if (corenrn_mpi_lib.empty()) {
83 char* lib = getenv(
"NRN_CORENRN_MPI_LIB");
85 corenrn_mpi_lib = std::string(lib);
90 if (!corenrn_mpi_lib.empty()) {
91 args.append(
" --mpi-lib ");
92 args.append(corenrn_mpi_lib);
113 bool corenrn_skip_write_model_to_disk =
false;
114 const std::string corenrn_skip_write_model_to_disk_arg{
"--skip-write-model-to-disk"};
119 std::string filtered_nrn_arg{nrn_arg};
121 static_cast<std::string
>(filtered_nrn_arg).
find(corenrn_skip_write_model_to_disk_arg);
122 if (ind != std::string::npos) {
123 corenrn_skip_write_model_to_disk =
true;
124 filtered_nrn_arg.erase(ind, corenrn_skip_write_model_to_disk_arg.size());
136 filtered_nrn_arg.insert(0,
" coreneuron ");
137 filtered_nrn_arg.append(
" --skip-mpi-finalize ");
140 filtered_nrn_arg.append(
" --mpi ");
155 static bool modl_reg_called =
false;
156 if (!modl_reg_called) {
158 modl_reg_called =
true;
182 for (
int i = 0;
i <
argc;
i++) {
183 args.append(
argv[
i]);
195 char* arg_to_free =
prepare_args(new_argc, new_argv, args);
static double use_fast_imem(void *v)
int corenrn_embedded_nthread
int solve_core(int argc, char **argv)
Initialize mechanisms and run simulation using CoreNEURON.
void set_openmp_threads(int nthread)
set openmp threads equal to neuron's pthread
int corenrn_embedded_run(int nthread, int have_gaps, int use_mpi, int use_fast_imem, const char *mpi_lib, const char *nrn_arg, int file_mode)
Run CoreNEURON in embedded mode with NEURON.
bool corenrn_embedded
global variables from coreneuron library
void mk_mech_init(int argc, char **argv)
initialize standard mechanisms from coreneuron
char * prepare_args(int &argc, char **&argv, std::string &args)
parse arguments from neuron and prepare new one for coreneuron
void add_mpi_library_arg(const char *mpi_lib, std::string &args)
Add MPI library loading CLI argument for CoreNEURON.
int run_solve_core(int argc, char **argv)
THIS FILE IS AUTO GENERATED DONT MODIFY IT.
bool nrn_have_gaps
variables defined in coreneuron library
void modl_reg()
Mechanism registration function.
void nrn_cleanup_ion_map()
Cleanup global ion map created during mechanism registration.
int find(const int, const int, const int, const int, const int)