#
# Copyright 2009-2011 The VOTCA Development Team (http://www.votca.org)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#general scripts
tag file tag_file.sh
dummy dummy dummy.sh

#only here for building the manual (not actually used)
function common functions_common.sh
csg master inverse.sh

# BEGIN: these scripts have to be defined for each method
# method initialization
prepare ibi prepare_generic.sh
prepare imc prepare_imc.sh
prepare generic prepare_generic.sh
prepare tf prepare_generic.sh
prepare_single ibi prepare_generic_single.sh
prepare_single imc prepare_generic_single.sh
prepare_single tf prepare_generic_single.sh
initstep ibi initialize_step_generic.sh
initstep imc initialize_step_generic.sh
initstep tf initialize_step_generic.sh

#this is just to warn users from old versions
prepare ibm prepare_ibm.sh
update ibm update_ibm.sh

# the update step
update ibi update_ibi.sh
update imc update_imc.sh

# add up the potential
# TODO: think about name add_pot, is other name maybe better
add_pot ibi add_pot_generic.sh
add_pot imc add_pot_generic.sh
add_pot tf add_pot_generic.sh

# END: these scripts have to be defined for each method

# initial guesses
rdf pot RDF_to_POT.pl

# post update
post_update ibi post_update_generic.sh
post_update imc post_update_generic.sh
post_update tf dummy.sh
post_update_single ibi post_update_generic_single.sh
post_update_single imc post_update_generic_single.sh

#post update scripts
postupd scale postupd_scale.sh
postupd pressure postupd_pressure.sh
postupd splinesmooth postupd_splinesmooth.sh
postupd smooth postupd_smooth.sh
postupd shift dpot_shift_nb.pl
postupd dummy postadd_dummy.sh
postupd tag tag_file.sh

# post add
post add post_add.sh
post add_single post_add_single.sh

# post add scripts
postadd tag tag_file.sh
postadd dummy postadd_dummy.sh
postadd copyback postadd_copyback.sh
postadd convergence postadd_convergence.sh
postadd acc_convergence postadd_acc_convergence.sh 
postadd shift dpot_shift_nb.pl
postadd overwrite postadd_overwrite.sh
postadd plot postadd_plot.sh

#convergence checks
convergence_check default convergence_check_default.sh

# table preparation
dpot shift_nonbonded dpot_shift_nb.pl
pot shift_nonbonded dpot_shift_nb.pl
pot shift_bonded dpot_shift_bo.pl
resample target resample_target.sh
dpot crop dpot_crop.pl

# ibi specific stuff
# TODO: rename to ibi single
update ibi_single update_ibi_single.sh
# TODO: rename to ibi pot
update ibi_pot update_ibi_pot.pl

# imc specific stuff
# TODO: rename to imc single
imcsolver matlab solve_matlab.sh
solve matlab linsolve.m
imcsolver octave solve_octave.sh
solve octave linsolve.octave
imcsolver numpy solve_numpy.sh
solve numpy linsolve.py

imc purify imc_purify.sh

# tf specific stuff
update tf update_tf.sh
update tf_single update_tf_single.sh
calc thermforce calc_thermforce.sh
tf apply_prefactor apply_prefactor.pl

# pressure correction
pressure_cor simple pressure_cor_simple.pl
pressure_cor wjk pressure_cor_wjk.pl

#density correction
density symmetrize density_symmetrize.py 

# generic table manipulation
table add add_POT.pl
table integrate table_integrate.pl
table extrapolate table_extrapolate.pl
table merge merge_tables.pl
table smooth table_smooth.pl
table linearop table_linearop.pl
table dummy table_dummy.sh
table get_value table_get_value.pl
table getsubset table_getsubset.py
table smooth_borders table_smooth_borders.py
table compare table_compare.pl 

# tools needed for (atom/molecule) configuration handling
configuration compare configuration_compare.py

# error analysis
tables jackknife tables_jackknife.pl

# BEGIN: these scripts have to be defined for each simulation program
# interface to gromacs
run gromacs run_gromacs.sh
pressure gromacs calc_pressure_gromacs.sh
rdf gromacs calc_rdf_generic.sh
imc_stat gromacs imc_stat_generic.sh

density gromacs calc_density_gromacs.sh

# these scripts have to be defined for each method, if NOT generic
prepare_generic gromacs prepare_generic_gromacs.sh
initstep_generic gromacs initialize_step_generic_gromacs.sh
prepare_generic espresso prepare_generic_espresso.sh
initstep_generic espresso initialize_step_generic_espresso.sh


# gromacs scripts specific stuff
convert_potential gromacs potential_to_gromacs.sh
convert_potential xvg table_to_xvg.pl

#function for gromacs
functions gromacs functions_gromacs.sh

# Interface to ESPResSo
run espresso run_espresso.sh
pressure espresso calc_pressure_espresso.sh
rdf espresso calc_rdf_espresso.sh

# ESPResSo scripts
convert_potential espresso potential_to_espresso.sh
convert_potential tab table_to_tab.pl

# function for ESPResSo
functions espresso functions_espresso.sh

# END: these scripts have to be defined for each simulation program
