Skip to content

Commit ab1e6ee

Browse files
committed
Removed useless uses of struct. We have typedefs, why not use them? Changed fit_data variable name to just fit. Renamed fit() to fit_do() to avoid issues with fit(fit)...
1 parent 7c39578 commit ab1e6ee

19 files changed

+251
-254
lines changed

plugins/testplugin.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ void reaction_free(jabs_plugin_reaction *r) {
3535
free(r);
3636
}
3737

38-
double testplugin_cs(const struct jabs_plugin_reaction *r, double theta, double E) {
38+
double testplugin_cs(const jabs_plugin_reaction *r, double theta, double E) {
3939
return jibal_cross_section_rbs(r->incident, r->target, theta, E, JIBAL_CS_RUTHERFORD); /* just a simple test */
4040
}

src/fit.c

+45-46
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ int fit_detector(const jibal *jibal, const fit_data_det *fdd, const simulation *
7676
void fit_deriv_prepare_jspaces(const gsl_vector *x, fit_data *fit) {
7777
jacobian_space *space = fit->jspace;
7878
for(size_t j = 0; j < fit->fit_params->n_active; j++) { /* Make copies of sim (shallow) with deep copies of detector and sample. This way we can parallelize. */
79-
struct jacobian_space *spc = &space[j];
79+
jacobian_space *spc = &space[j];
8080
spc->n_spectra_calculated = 0;
8181
fit_variable *var = spc->var;
8282
double xj = gsl_vector_get(x, j);
@@ -105,7 +105,7 @@ void fit_deriv_prepare_jspaces(const gsl_vector *x, fit_data *fit) {
105105
void fit_deriv_cleanup_jspaces(fit_data *fit) {
106106
jacobian_space *space = fit->jspace;
107107
for(size_t j = 0; j < fit->fit_params->n_active; j++) {
108-
struct jacobian_space *spc = &space[j];
108+
jacobian_space *spc = &space[j];
109109
fit_variable *var = spc->var;
110110
fit->stats.n_spectra_iter += spc->n_spectra_calculated;
111111
switch(var->type) {
@@ -122,7 +122,7 @@ void fit_deriv_cleanup_jspaces(fit_data *fit) {
122122
}
123123

124124
int fit_deriv_function(const gsl_vector *x, void *params, gsl_matrix *J) {
125-
struct fit_data *fit = (struct fit_data *) params;
125+
fit_data *fit = (fit_data *) params;
126126
assert(fit->stats.iter_call >= 1); /* This function relies on data that was computed when iter_call == 1 */
127127
assert(fit->fdf->p == fit->fit_params->n_active);
128128

@@ -138,7 +138,7 @@ int fit_deriv_function(const gsl_vector *x, void *params, gsl_matrix *J) {
138138
#pragma omp for schedule(dynamic)
139139
for(j = 0; j < n; j++) {
140140
//fprintf(stderr, "Thread id %i got %zu.\n", omp_get_thread_num(), j);
141-
struct jacobian_space *spc = &fit->jspace[j];
141+
jacobian_space *spc = &fit->jspace[j];
142142
fit_variable *var = spc->var;
143143
size_t i_start, i_stop;
144144
if(var->type == FIT_VARIABLE_DETECTOR) {
@@ -178,7 +178,7 @@ int fit_deriv_function(const gsl_vector *x, void *params, gsl_matrix *J) {
178178
}
179179

180180
int fit_function(const gsl_vector *x, void *params, gsl_vector *f) {
181-
struct fit_data *fit = (struct fit_data *) params;
181+
fit_data *fit = (fit_data *) params;
182182
fit->stats.iter_call++;
183183
if(fit->stats.iter_call == 1) { /* Clear stored spectra from previous iteration */
184184
for(size_t i = 0; i < fit->n_det_spectra; i++) {
@@ -254,7 +254,7 @@ int fit_sanity_check(const fit_data *fit) {
254254
return GSL_SUCCESS;
255255
}
256256

257-
int fit_parameters_set_from_vector(struct fit_data *fit, const gsl_vector *x) {
257+
int fit_parameters_set_from_vector(fit_data *fit, const gsl_vector *x) {
258258
DEBUGMSG("Fit iteration has %zu active parameters from a total of %zu possible.", fit->fit_params->n_active, fit->fit_params->n)
259259
for(size_t i = 0; i < fit->fit_params->n; i++) {
260260
fit_variable *var = &fit->fit_params->vars[i];
@@ -271,7 +271,7 @@ int fit_parameters_set_from_vector(struct fit_data *fit, const gsl_vector *x) {
271271
return GSL_SUCCESS;
272272
}
273273

274-
void fit_iter_stats_update(struct fit_data *fit_data, const gsl_multifit_nlinear_workspace *w) {
274+
void fit_iter_stats_update(fit_data *fit_data, const gsl_multifit_nlinear_workspace *w) {
275275
gsl_vector *f = gsl_multifit_nlinear_residual(w);
276276
/* compute reciprocal condition number of J(x) */
277277
gsl_multifit_nlinear_rcond(&fit_data->stats.rcond, w);
@@ -283,20 +283,20 @@ void fit_iter_stats_update(struct fit_data *fit_data, const gsl_multifit_nlinear
283283
fit_data->stats.cputime_cumul += fit_data->stats.cputime_iter;
284284
}
285285

286-
void fit_iter_stats_print(const struct fit_stats *stats) {
286+
void fit_iter_stats_print(const fit_stats *stats) {
287287
jabs_message(MSG_INFO, "%4zu | %10.2e | %14.7e | %12.7lf | %7zu | %7zu | %10.3lf | %13.1lf |\n",
288288
stats->iter, 1.0 / stats->rcond, stats->norm,
289289
stats->chisq_dof, stats->n_evals, stats->n_spectra,
290290
stats->cputime_cumul, 1000.0 * stats->cputime_iter / stats->n_spectra_iter);
291291
}
292292

293-
void fit_stats_print(const struct fit_stats *stats, jabs_msg_level msg_level) {
293+
void fit_stats_print(const fit_stats *stats, jabs_msg_level msg_level) {
294294
if(stats->chisq_dof > 0.0) {
295295
jabs_message(msg_level, "Final chisq/dof = %.7lf\n", stats->chisq_dof);
296296
}
297297
}
298298

299-
int fit_data_fit_range_add(struct fit_data *fit_data, const struct roi *range) { /* Makes a deep copy */
299+
int fit_data_fit_range_add(fit_data *fit_data, const roi *range) { /* Makes a deep copy */
300300
if(range->low == 0 && range->high == 0) {
301301
return EXIT_FAILURE;
302302
}
@@ -314,7 +314,7 @@ int fit_data_fit_range_add(struct fit_data *fit_data, const struct roi *range) {
314314
return EXIT_SUCCESS;
315315
}
316316

317-
void fit_data_fit_ranges_free(struct fit_data *fit_data) {
317+
void fit_data_fit_ranges_free(fit_data *fit_data) {
318318
if(!fit_data)
319319
return;
320320
free(fit_data->fit_ranges);
@@ -341,7 +341,7 @@ void fit_data_det_residual_vector_set(const fit_data_det *fdd, const jabs_histog
341341
DEBUGMSG("Set %zu elements of vector from %zu ranges.", i_vec, fdd->n_ranges);
342342
}
343343
fit_data *fit_data_new(const jibal *jibal, simulation *sim) {
344-
struct fit_data *fit = calloc(1, sizeof(struct fit_data));
344+
fit_data *fit = calloc(1, sizeof(fit_data));
345345
fit->jibal = jibal;
346346
fit->sim = sim;
347347
fit_data_exp_alloc(fit);
@@ -425,20 +425,20 @@ void fit_data_exp_reset(fit_data *fit) {
425425
}
426426
}
427427

428-
void fit_data_roi_print(const struct fit_data *fit_data, const struct roi *roi) {
429-
if(!fit_data) {
428+
void fit_data_roi_print(const fit_data *fit, const struct roi *roi) {
429+
if(!fit) {
430430
return;
431431
}
432-
jabs_histogram *histo_sim = fit_data_histo_sum(fit_data, roi->i_det);
433-
jabs_histogram *histo_exp = fit_data_exp(fit_data, roi->i_det);
434-
jabs_histogram *histo_ref = fit_data->ref;
432+
jabs_histogram *histo_sim = fit_data_histo_sum(fit, roi->i_det);
433+
jabs_histogram *histo_exp = fit_data_exp(fit, roi->i_det);
434+
jabs_histogram *histo_ref = fit->ref;
435435
size_t n_sim = jabs_histogram_channels_in_range(histo_sim, roi->low, roi->high);
436436
size_t n_exp = jabs_histogram_channels_in_range(histo_exp, roi->low, roi->high);
437437
size_t n_ref = jabs_histogram_channels_in_range(histo_ref, roi->low, roi->high);
438438
double sim_cts = jabs_histogram_roi(histo_sim, roi->low, roi->high);
439439
double exp_cts = jabs_histogram_roi(histo_exp, roi->low, roi->high);
440440
double ref_cts = jabs_histogram_roi(histo_ref, roi->low, roi->high);
441-
const detector *det = sim_det(fit_data->sim, roi->i_det);
441+
const detector *det = sim_det(fit->sim, roi->i_det);
442442

443443
jabs_message(MSG_INFO, " low = %12zu\n", roi->low);
444444
jabs_message(MSG_INFO, " high = %12zu\n", roi->high);
@@ -677,7 +677,7 @@ void fit_data_exp_free(fit_data *fit) {
677677
fit->n_exp = 0;
678678
}
679679

680-
int fit_data_load_exp(struct fit_data *fit, size_t i_det, const char *filename) {
680+
int fit_data_load_exp(fit_data *fit, size_t i_det, const char *filename) {
681681
jabs_histogram *h = spectrum_read_detector(filename, sim_det(fit->sim, i_det));
682682
if(!h) {
683683
jabs_message(MSG_ERROR, "Reading spectrum from file \"%s\" was not successful.\n", filename);
@@ -756,7 +756,7 @@ void fit_data_spectra_free(fit_data *fit) {
756756
fit->n_det_spectra = 0;
757757
}
758758

759-
int fit_data_add_det(struct fit_data *fit, detector *det) {
759+
int fit_data_add_det(fit_data *fit, detector *det) {
760760
if(!fit || !det)
761761
return EXIT_FAILURE;
762762
if(sim_det_add(fit->sim, det)) {
@@ -775,11 +775,11 @@ fit_data_det *fit_data_fdd(const fit_data *fit, size_t i_det) {
775775
}
776776

777777

778-
size_t fit_data_ranges_calculate_number_of_channels(const struct fit_data *fit_data) {
778+
size_t fit_data_ranges_calculate_number_of_channels(const fit_data *fit) {
779779
size_t sum = 0;
780-
for(size_t i = 0; i < fit_data->n_fit_ranges; i++) {
781-
roi *r = &fit_data->fit_ranges[i];
782-
detector *det = sim_det(fit_data->sim, r->i_det);
780+
for(size_t i = 0; i < fit->n_fit_ranges; i++) {
781+
roi *r = &fit->fit_ranges[i];
782+
detector *det = sim_det(fit->sim, r->i_det);
783783
if(!det) {
784784
continue;
785785
}
@@ -792,8 +792,8 @@ size_t fit_data_ranges_calculate_number_of_channels(const struct fit_data *fit_d
792792
return sum;
793793
}
794794

795-
struct fit_stats fit_stats_init(void) {
796-
struct fit_stats s;
795+
fit_stats fit_stats_init(void) {
796+
fit_stats s;
797797
s.n_evals = 0;
798798
s.n_evals_iter = 0;
799799
s.n_spectra = 0;
@@ -869,31 +869,30 @@ int multifit_nlinear_print_jacobian(const gsl_multifit_nlinear_workspace *w, con
869869
return EXIT_SUCCESS;
870870
}
871871

872-
int jabs_gsl_multifit_nlinear_driver(const size_t maxiter, const double xtol, const double chisq_tol, struct fit_data *fit_data, gsl_multifit_nlinear_workspace *w) {
872+
int jabs_gsl_multifit_nlinear_driver(const size_t maxiter, const double xtol, const double chisq_tol, fit_data *fit, gsl_multifit_nlinear_workspace *w) {
873873
int status = 0;
874-
size_t iter;
875874
double chisq_dof_old;
876875
jabs_message(MSG_INFO, "iter | cond(J) | |f(x)| | chisq/dof | evals | spectra | time cumul | time/spectrum |\n");
877876
jabs_message(MSG_INFO, " | | | | cumul. | cumul. | s | ms |\n");
878-
for(iter = 0; iter <= maxiter; iter++) {
879-
fit_data->stats.iter_call = 0;
880-
fit_data->stats.iter = iter;
877+
for(size_t iter = 0; iter <= maxiter; iter++) {
878+
fit->stats.iter_call = 0;
879+
fit->stats.iter = iter;
881880
if(iter) {
882-
chisq_dof_old = fit_data->stats.chisq_dof;
883-
fit_data->stats.cputime_iter = 0.0;
884-
fit_data->stats.n_evals_iter = 0;
885-
fit_data->stats.n_spectra_iter = 0;
881+
chisq_dof_old = fit->stats.chisq_dof;
882+
fit->stats.cputime_iter = 0.0;
883+
fit->stats.n_evals_iter = 0;
884+
fit->stats.n_spectra_iter = 0;
886885
status = gsl_multifit_nlinear_iterate(w);
887886
DEBUGMSG("Iteration status %i (%s)", status, gsl_strerror(status));
888887
}
889-
if(fit_data->stats.error) {
890-
return fit_data->stats.error;
888+
if(fit->stats.error) {
889+
return fit->stats.error;
891890
}
892891
if(status == GSL_ENOPROG && iter == 1) {
893892
return FIT_ERROR_NO_PROGRESS;
894893
}
895-
fit_iter_stats_update(fit_data, w);
896-
fit_iter_stats_print(&fit_data->stats);
894+
fit_iter_stats_update(fit, w);
895+
fit_iter_stats_print(&fit->stats);
897896
#ifdef DEBUG
898897
if(fit_data->stats.phase > FIT_PHASE_FAST) {
899898
char *jacobian_filename;
@@ -904,8 +903,8 @@ int jabs_gsl_multifit_nlinear_driver(const size_t maxiter, const double xtol, co
904903
}
905904
}
906905
#endif
907-
if(fit_data->fit_iter_callback) {
908-
if(fit_data->fit_iter_callback(fit_data->stats)) {
906+
if(fit->fit_iter_callback) {
907+
if(fit->fit_iter_callback(fit->stats)) {
909908
return FIT_ERROR_ABORTED;
910909
}
911910
}
@@ -916,8 +915,8 @@ int jabs_gsl_multifit_nlinear_driver(const size_t maxiter, const double xtol, co
916915
if(status == GSL_SUCCESS) {
917916
return FIT_SUCCESS_DELTA;
918917
}
919-
double chisq_change = 1.0 - fit_data->stats.chisq_dof / chisq_dof_old;
920-
if(fit_data->stats.chisq_dof > chisq_dof_old) {
918+
double chisq_change = 1.0 - fit->stats.chisq_dof / chisq_dof_old;
919+
if(fit->stats.chisq_dof > chisq_dof_old) {
921920
jabs_message(MSG_WARNING, "Chisq increased, this probably shouldn't happen.\n");
922921
}
923922
if(chisq_change < chisq_tol) {
@@ -1055,8 +1054,8 @@ int fit_uncertainty_spectra(const fit_data *fit, const gsl_matrix *J, const gsl_
10551054
return EXIT_SUCCESS;
10561055
}
10571056

1058-
int fit(fit_data *fit) {
1059-
struct fit_params *fit_params = fit->fit_params;
1057+
int fit_do(fit_data *fit) {
1058+
fit_params *fit_params = fit->fit_params;
10601059
if(!fit_params || fit_params->n_active == 0) {
10611060
jabs_message(MSG_ERROR, "No parameters to fit.\n");
10621061
return EXIT_FAILURE;
@@ -1280,7 +1279,7 @@ int fit_set_roi_from_string(roi *r, const char *str) {
12801279
return EXIT_SUCCESS;
12811280
}
12821281

1283-
double fit_emin(struct fit_data *fit, size_t i_det) {
1282+
double fit_emin(fit_data *fit, size_t i_det) {
12841283
double emin = fit->sim->beam_E;
12851284
for(size_t i_range = 0; i_range < fit->n_fit_ranges; i_range++) {
12861285
const roi *r = &(fit->fit_ranges[i_range]);

src/fit.h

+16-16
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ typedef enum fit_phase {
5555
FIT_PHASE_SLOW = 2
5656
} fit_phase;
5757

58-
struct fit_stats {
58+
typedef struct fit_stats {
5959
fit_phase phase;
6060
size_t n_evals;
6161
size_t n_evals_iter; /* Number of function evaluations per iteration */
@@ -71,7 +71,7 @@ struct fit_stats {
7171
size_t iter;
7272
size_t iter_call;
7373
int error;
74-
};
74+
} fit_stats;
7575

7676
typedef struct roi {
7777
size_t i_det; /* detector sim->det[i_det] */
@@ -122,7 +122,7 @@ typedef struct fit_data {
122122
fit_stats stats; /* Fit statistics, updated as we iterate */
123123
int phase_start; /* Fit phase to start from (see FIT_PHASE -defines) */
124124
int phase_stop; /* Inclusive */
125-
int (*fit_iter_callback)(struct fit_stats stats);
125+
int (*fit_iter_callback)(fit_stats stats);
126126
gsl_vector *f_iter;
127127
double h_df;
128128
jacobian_space *jspace;
@@ -138,38 +138,38 @@ void fit_data_free(fit_data *fit); /* Doesn't free everything in fit, like sm, j
138138
void fit_data_reset(fit_data *fit);
139139
void fit_data_exp_reset(fit_data *fit);
140140
void fit_data_print(const fit_data *fit, jabs_msg_level msg_level);
141-
void fit_data_roi_print(const struct fit_data *fit_data, const struct roi *roi);
141+
void fit_data_roi_print(const fit_data *fit, const roi *roi);
142142
jabs_histogram *fit_data_exp(const fit_data *fit, size_t i_det);
143143
jabs_histogram *fit_data_ref(const fit_data *fit_data);
144144
fit_params *fit_params_all(fit_data *fit);
145145
int fit_data_fdd_init(fit_data *fit);
146146
void fit_data_fdd_free(fit_data *fit);
147147
void fit_data_exp_alloc(fit_data *fit);
148148
void fit_data_exp_free(fit_data *fit);
149-
int fit_data_load_exp(struct fit_data *fit, size_t i_det, const char *filename);
149+
int fit_data_load_exp(fit_data *fit, size_t i_det, const char *filename);
150150
int fit_data_set_sample_model(fit_data *fit, sample_model *sm_new); /* Sets sample model of the fit (copies pointer), freeing the old model. Resets reactions. */
151151
jabs_histogram *fit_data_histo_sum(const fit_data *fit, size_t i_det);
152152
void fit_data_spectra_copy_to_spectra_from_ws(result_spectra *s, const detector *det, const jabs_histogram *exp, const sim_workspace *ws); /* Makes deep copies of histograms */
153153
int fit_data_spectra_alloc(fit_data *fit);
154154
void fit_data_spectra_free(fit_data *fit);
155-
int fit_data_add_det(struct fit_data *fit, detector *det);
155+
int fit_data_add_det(fit_data *fit, detector *det);
156156
fit_data_det *fit_data_fdd(const fit_data *fit, size_t i_det);
157-
size_t fit_data_ranges_calculate_number_of_channels(const struct fit_data *fit_data);
158-
struct fit_stats fit_stats_init(void);
159-
int fit(fit_data *fit);
157+
size_t fit_data_ranges_calculate_number_of_channels(const fit_data *fit);
158+
fit_stats fit_stats_init(void);
159+
int fit_do(fit_data *fit);
160160
void fit_correlation_print(const gsl_matrix *covar, jabs_msg_level msg_level);
161161
int fit_uncertainty_spectra(const fit_data *fit, const gsl_matrix *J, const gsl_matrix *covar, const gsl_vector *f, const gsl_vector *w, const char *filename); /* Calculates +/- uncertainty spectra and copies them to fit. If filename is not null, writes (debug) output in it. */
162-
int fit_parameters_set_from_vector(struct fit_data *fit, const gsl_vector *x); /* Updates values in fit params as they are varied by the fit algorithm. */
162+
int fit_parameters_set_from_vector(fit_data *fit, const gsl_vector *x); /* Updates values in fit params as they are varied by the fit algorithm. */
163163
int fit_function(const gsl_vector *x, void *params, gsl_vector *f);
164164
int fit_determine_active_detectors(fit_data *fit);
165165
int fit_sanity_check(const fit_data *fit);
166-
void fit_iter_stats_update(struct fit_data *params, const gsl_multifit_nlinear_workspace *w);
167-
void fit_iter_stats_print(const struct fit_stats *stats);
168-
void fit_stats_print(const struct fit_stats *stats, jabs_msg_level msg_level);
169-
int fit_data_fit_range_add(struct fit_data *fit_data, const struct roi *range); /* Makes a deep copy */
170-
void fit_data_fit_ranges_free(struct fit_data *fit_data);
166+
void fit_iter_stats_update(fit_data *params, const gsl_multifit_nlinear_workspace *w);
167+
void fit_iter_stats_print(const fit_stats *stats);
168+
void fit_stats_print(const fit_stats *stats, jabs_msg_level msg_level);
169+
int fit_data_fit_range_add(fit_data *fit_data, const roi *range); /* Makes a deep copy */
170+
void fit_data_fit_ranges_free(fit_data *fit_data);
171171
int fit_set_roi_from_string(roi *r, const char *str); /* Parses only low and high from "[low:high]". */
172-
double fit_emin(struct fit_data *fit, size_t i_det); /* Returns lowest energy of fit ranges for detector i_det. Detectors, calibrations and fit ranges must be set before calling. */
172+
double fit_emin(fit_data *fit, size_t i_det); /* Returns lowest energy of fit ranges for detector i_det. Detectors, calibrations and fit ranges must be set before calling. */
173173
const char *fit_error_str(int error);
174174
int fit_range_compare(const void *a, const void *b);
175175
const char *fit_phase_to_str(const fit_phase phase);

src/jabs.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ int assign_stopping_Z1_Z2(jibal_gsto *gsto, int Z1, int Z2) {
550550

551551
int assign_stopping(jibal_gsto *gsto, const simulation *sim) {
552552
/* TODO: simplify this by finding all possible Z1, Z2 combinations, considering target elements, beam and reactions before attempting to assign stopping/straggling (GSTO) */
553-
struct sample *sample = sim->sample;
553+
sample *sample = sim->sample;
554554
if(!sample) {
555555
jabs_message(MSG_ERROR, "Could not assign stopping, because sample is not set!\n");
556556
return 1;

src/reaction.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,9 @@ reaction *r33_file_to_reaction(const jibal_isotope *isotopes, const r33_file *rf
312312
}
313313
/* TODO: copy and convert data (check units etc) */
314314
r->n_cs_table = rfile->n_data;
315-
r->cs_table = calloc(r->n_cs_table, sizeof(struct reaction_point));
315+
r->cs_table = calloc(r->n_cs_table, sizeof(reaction_point));
316316
for(size_t i = 0; i < rfile->n_data; i++) {
317-
struct reaction_point *rp = &r->cs_table[i];
317+
reaction_point *rp = &r->cs_table[i];
318318
rp->E = rfile->data[i][0] * rfile->enfactors[0] * C_KEV; /* TODO: other factors? */
319319
if(rfile->unit == R33_UNIT_RR) {
320320
rp->sigma = rfile->data[i][2] * rfile->sigfactors[0] * jibal_cross_section_rbs(r->incident, r->target, r->theta, rp->E, JIBAL_CS_RUTHERFORD);

src/reaction.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ typedef enum {
3737
REACTION_PLUGIN = 5
3838
} reaction_type;
3939

40-
struct reaction_point {
40+
typedef struct reaction_point {
4141
double E;
4242
double sigma;
43-
};
43+
} reaction_point;
4444

4545
typedef enum jabs_reaction_cs {
4646
JABS_CS_NONE = 0,
@@ -80,7 +80,7 @@ typedef struct reaction {
8080
jabs_plugin *plugin; /* for REACTION_PLUGIN */
8181
jabs_plugin_reaction *plugin_r; /* for REACTION_PLUGIN */
8282
#endif
83-
struct reaction_point *cs_table; /* for REACTION_FILE */
83+
reaction_point *cs_table; /* for REACTION_FILE */
8484
size_t n_cs_table;
8585
double theta; /* For REACTION_FILE */
8686
double Q;

0 commit comments

Comments
 (0)