1 package ffx.algorithms.cli;
2
3 import picocli.CommandLine.ArgGroup;
4 import picocli.CommandLine.Option;
5
6 public class RepExOptions {
7
8
9
10
11 @ArgGroup(heading = "%n Replica Exchange Options%n", validate = false)
12 private final RepExOptions.RepExOptionGroup group = new RepExOptions.RepExOptionGroup();
13
14 public boolean getRepEx() {
15 return group.repEx;
16 }
17
18 public void setRepEx(boolean repEx) {
19 group.repEx = repEx;
20 }
21
22 public int getReplicaSteps() {
23 return group.replicaSteps;
24 }
25
26 public void setReplicaSteps(int numSteps) {
27 group.replicaSteps = numSteps;
28 }
29
30 public double getExponent() {
31 return group.exponent;
32 }
33
34 public void setExponent(double exponent) {
35 group.exponent = exponent;
36 }
37
38 public void setMonteCarlo(boolean monteCarlo) {
39 group.monteCarlo = monteCarlo;
40 }
41
42 public boolean getMonteCarlo() {
43 return group.monteCarlo;
44 }
45
46
47 private static class RepExOptionGroup {
48
49
50
51
52 @Option(names = {"-x", "--repEx"}, paramLabel = "false",
53 description = "Execute temperature replica exchange")
54 boolean repEx = false;
55
56
57
58
59 @Option(names = {"--rs", "--replicaSteps"}, paramLabel = "100", defaultValue = "100",
60 description = "Number of steps for replica exchange.")
61 private int replicaSteps = 100;
62
63
64
65
66
67 @Option(names = {"-e", "--exponent"}, paramLabel = "0.05", defaultValue = "0.05",
68 description = "Exponent to set the exponential temperature ladder.")
69 private double exponent = 0.05;
70
71
72
73
74 @Option(names = {"--oMC", "--oneMonteCarlo"}, paramLabel = "false",
75 description = "Execute 1 Monte Carlo move for each temperature in each cycle")
76 boolean monteCarlo = false;
77
78 }
79 }
80