-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathslabcc_input.hpp
29 lines (26 loc) · 1009 Bytes
/
slabcc_input.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once
#include "INIReader.h"
#include "slabcc_math.hpp"
// references to the input data variables
struct input_data {
std::string &CHGCAR_neutral, &LOCPOT_charged, &LOCPOT_neutral,
&CHGCAR_charged, &opt_algo;
arma::mat &charge_position;
arma::rowvec &charge_fraction;
arma::mat &charge_sigma, &charge_rotations;
arma::rowvec3 &slabcenter;
arma::rowvec &diel_in, &diel_out;
arma::uword &normal_direction;
arma::rowvec2 &interfaces;
double &diel_erf_beta, &opt_tol;
bool &optimize, &optimize_charge_position, &optimize_charge_sigma,
&optimize_charge_rotation, &optimize_charge_fraction, &optimize_interface,
&extrapolate, &model_2D, &trivariate;
double &opt_grid_x, &extrapol_grid_x;
int &max_eval, &max_time, &extrapol_steps_num;
double &extrapol_steps_size;
// read the input variables from the input_file
void parse(const std::string &input_file) const;
// sanity checks on the input parameters
void verify() const;
};