Commit 681ced14 authored by Jens Wehner's avatar Jens Wehner Committed by GitHub

Merge branch 'master' into nullptr

parents 96f10487 b9b032f1
Pipeline #89438127 failed with stages
in 378 minutes and 5 seconds
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/97dee3a54c2d49829932aac8899f2843)](https://app.codacy.com/app/JoshuaSBrown/csg?utm_source=github.com&utm_medium=referral&utm_content=votca/csg&utm_campaign=Badge_Grade_Dashboard)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/2fff2f588e7e40bd93292016052e6224)](https://www.codacy.com/manual/votca-package/csg?utm_source=github.com&utm_medium=referral&utm_content=votca/csg&utm_campaign=Badge_Grade)
[![codecov](https://codecov.io/gh/votca/csg/branch/master/graph/badge.svg)](https://codecov.io/gh/votca/csg)
[![Build Status](https://travis-ci.org/votca/csg.svg?branch=master)](https://travis-ci.org/votca/csg)
[![pipeline status](https://gitlab.com/votca/csg/badges/master/pipeline.svg)](https://gitlab.com/votca/csg/commits/master)
......
......@@ -101,7 +101,6 @@ convergence_check default convergence_check_default.sh
# table preparation
resample target resample_target.sh
dpot crop dpot_crop.pl
# ibi specific stuff
update ibi update_ibi.sh
......@@ -110,7 +109,7 @@ update ibi_pot update_ibi_pot.pl
# imc specific stuff
update imc update_imc.sh
imc purify imc_purify.sh
update imc_single update_imc_single.sh
# optimzer(generic) stuff
optimizer prepare_state optimizer_prepare_state.sh
......
#! /usr/bin/perl -w
#
# 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.
#
use strict;
$_=$0;
s#^.*/##;
my $progname=$_;
my $usage="Usage: $progname [OPTIONS] <file> <a> <b>";
#Defaults
my $withflag=undef;
while ((defined ($ARGV[0])) and ($ARGV[0] =~ /^-./))
{
if (($ARGV[0] !~ /^--/) and (length($ARGV[0])>2)){
$_=shift(@ARGV);
#short opt having agruments examples fo
if ( $_ =~ /^-[fo]/ ) {
unshift(@ARGV,substr($_,0,2),substr($_,2));
}
else{
unshift(@ARGV,substr($_,0,2),"-".substr($_,2));
}
}
if (($ARGV[0] eq "-h") or ($ARGV[0] eq "--help"))
{
print <<END;
$progname, version %version%
crop the potential update at poorly sampled ends
$usage
Allowed options:
-h, --help Show this help message
Examples:
* $progname tmp.dpot.cur tmp.dpot.new
END
exit;
}
elsif ($ARGV[0] eq "--withflag")
{
shift(@ARGV);
die "nothing given for --withflag" unless $#ARGV > -1;
$withflag = $ARGV[0];
}
else
{
die "Unknown option '".$ARGV[0]."' !\n";
}
shift(@ARGV);
}
#Print usage
die "missing parameters\n$usage\n" unless $#ARGV >= 1;
use CsgFunctions;
my $infile="$ARGV[0]";
my $outfile="$ARGV[1]";
my @r;
my @val;
my @flag;
(readin_table($infile,@r,@val,@flag)) || die "$progname: error at readin_table\n";
# find last u/o
my $i_first;
# TODO: look for at least 3 successive points with i
for($i_first=0; ($i_first<$#r) && ($flag[$i_first] =~ /[uo]/); $i_first++) {}
my $ncrop=0;
while($i_first + $ncrop<=$#r-3) {
my $i = $i_first + $ncrop;
my $delta_1 = $val[$i] - $val[$i + 1];
my $delta_2 = $val[$i + 1 ] - $val[$i + 2];
# do both deltas have the same sign?
if($delta_1 * $delta_2 > 0) {
last;
} elsif (abs($val[$i]) < 0.5 && abs($val[$i+1]) < 0.5) {
last;
}
$flag[$i]='o';
$ncrop++;
if($ncrop > 3) {
print "error: need to crop more than 3 points in $infile. think about sampleing/grid interval.";
exit 1;
}
}
if($ncrop > 0) {
print "warnng, I cropped $ncrop points at the beginning\n";
}
saveto_table($outfile,@r,@val,@flag) || die "$progname: error at save table\n";
name='CG-CG'
blocks=load(strcat(name, '.blocks'));
corr_avg = load(strcat(name, '_', num2str(blocks(1)), '.cor'));
S_avg = load(strcat(name, '_', num2str(blocks(1)), '.S'));
dS_avg = load(strcat(name, '_', num2str(blocks(1)), '.imc'));
for i = 2:length(blocks)
corr_file=strcat(name, '_', num2str(blocks(i)), '.cor');
S_file=strcat(name, '_', num2str(blocks(i)), '.S');
dS_file=strcat(name, '_', num2str(blocks(i)), '.imc');
corr=load(corr_file);
S=load(S_file);
dS=load(dS_file);
corr_avg += corr;
S_avg(:,2) += S(:,2);
dS_avg(:,2) += S(:,2);
end;
corr_avg = corr_avg/length(blocks);
S_avg = S_avg/length(blocks);
gmc = -(corr_avg - reshape(kron(S_avg(:,2),S_avg(:,2)), size(corr_avg)));
save('-ascii', strcat(name, '.gmc.block'), 'gmc');
save('-ascii', strcat(name, '.imc.block'), 'dS');
#quit
......@@ -42,4 +42,4 @@ for group in $imc_groups; do
critical csg_imc_solve --imcfile "${group}.imc" --gmcfile "${group}.gmc" --idxfile "${group}.idx" --regularization "${reg}"
done
for_all "non-bonded bonded" do_external imc purify
for_all "non-bonded bonded" do_external update imc_single
#!/bin/bash
#
# Copyright 2009-2011 The VOTCA Development Team (http://www.votca.org)
# Copyright 2009-2019 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.
......@@ -18,37 +18,32 @@
if [ "$1" = "--help" ]; then
cat <<EOF
${0##*/}, version %version%
This scripts cleans up the dpot tables for each interaction when using IMC
This scripts multiplies the dpot tables for each interaction when using IMC by kBT
and handles potential update schemes
Usage: ${0##*/}
EOF
exit 0
fi
name=$(csg_get_interaction_property name)
min=$(csg_get_interaction_property min)
max=$(csg_get_interaction_property max)
step=$(csg_get_interaction_property step)
kBT=$(csg_get_property cg.inverse.kBT)
bondtype="$(csg_get_interaction_property bondtype)"
echo "purifying dpot for $name"
comment="$(get_table_comment)"
critical csg_resample --in ${name}.dpot.imc --out ${name}.dpot.impure --grid ${min}:${step}:${max} --comment "$comment"
step_nr=$(get_current_step_nr)
scheme=( $(csg_get_interaction_property inverse.do_potential) )
scheme_nr=$(( ( $step_nr - 1 ) % ${#scheme[@]} ))
name=$(csg_get_interaction_property name)
if [ "${scheme[$scheme_nr]}" = 1 ]; then
echo "Update potential ${name} : yes"
do_external table linearop --withflag o ${name}.dpot.impure ${name}.dpot.impure 0 0
do_external table linearop --withflag i ${name}.dpot.impure ${name}.dpot.impure $kBT 0
kBT=$(csg_get_property cg.inverse.kBT)
is_num "${kBT}" || die "${0##*/}: cg.inverse.kBT should be a number, but found '$kBT'"
do_external table linearop "${name}.dpot.imc" "${name}.dpot.imc.kBT" "$kBT" 0
do_external dpot crop ${name}.dpot.impure ${name}.dpot.after_crop
do_external potential shift --type "${bondtype}" ${name}.dpot.after_crop ${name}.dpot.new
bondtype="$(csg_get_interaction_property bondtype)"
do_external potential shift --type "${bondtype}" "${name}.dpot.imc.kBT" "${name}.dpot.new"
else
echo "Update potential ${name} : no"
do_external table linearop ${name}.dpot.impure ${name}.dpot.new 0 0
min=$(csg_get_interaction_property min)
max=$(csg_get_interaction_property max)
step=$(csg_get_interaction_property step)
do_external table dummy "${min}:${step}:${max}" "${name}.dpot.new"
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment