-
Notifications
You must be signed in to change notification settings - Fork 183
/
overlap_tcl.c
88 lines (76 loc) · 2.87 KB
/
overlap_tcl.c
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
Copyright (C) 2010,2011,2012 The ESPResSo project
Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2010
Max-Planck-Institute for Polymer Research, Theory Group
This file is part of ESPResSo.
ESPResSo is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ESPResSo is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/** \file overlap_tcl.c
*
* Implementation of \ref overlap_tcl.h
*/
#include "utils.h"
#include "interaction_data.h"
#include "overlap_tcl.h"
#include "overlap.h"
#ifdef OVERLAPPED
int tclcommand_inter_parse_overlapped_bonded(Tcl_Interp *interp, int bond_type,
int argc, char **argv)
{
int overlap_type = OVERLAP_UNKNOWN;
if (argc < 3 ) {
Tcl_AppendResult(interp, "overlappedd needs two string parameter: "
"<type> <filename>", (char *) NULL);
return (TCL_ERROR);
}
if (ARG_IS_S(1,"bond")) overlap_type = OVERLAP_BOND_LENGTH;
if (ARG_IS_S(1,"angle")) overlap_type = OVERLAP_BOND_ANGLE;
if (ARG_IS_S(1,"dihedral")) overlap_type = OVERLAP_BOND_DIHEDRAL;
if (overlap_type == OVERLAP_UNKNOWN) {
Tcl_AppendResult(interp, "Unknown type of bonded overlapped interaction. Should be: "
"\"bond\" or \"angle\" or \"dihedral\"", (char *) NULL);
return (TCL_ERROR);
}
switch (overlapped_bonded_set_params(bond_type, overlap_type, argv[2])) {
case 1:
Tcl_AppendResult(interp, "illegal bond type", (char *)NULL);
return TCL_ERROR;
case 2:
Tcl_AppendResult(interp, "cannot open \"", argv[2], "\"", (char *)NULL);
return TCL_ERROR;
case 3:
Tcl_AppendResult(interp, "the number of parameters is wrong in the file \"", argv[2], "\"", (char *)NULL);
return TCL_ERROR;
default:
return TCL_OK;
}
}
int tclprint_to_result_overlapIA(Tcl_Interp *interp,
Bonded_ia_parameters *params)
{
switch (params->p.overlap.type) {
case OVERLAP_BOND_LENGTH:
Tcl_AppendResult(interp, "overlapped bond \"",params->p.overlap.filename,"\"",(char *) NULL);
return TCL_OK;
case OVERLAP_BOND_ANGLE:
Tcl_AppendResult(interp, "overlapped angle \"",params->p.overlap.filename,"\"",(char *) NULL);
return TCL_OK;
case OVERLAP_BOND_DIHEDRAL:
Tcl_AppendResult(interp, "overlapped dihedral \"",params->p.overlap.filename,"\"",(char *) NULL);
return TCL_OK;
default:
fprintf(stderr, "INTERNAL ERROR: unexpected overlap bond type!\n");
errexit();
}
return TCL_OK;
}
#endif