View Javadoc
1   package ffx.algorithms.cli;
2   
3   import picocli.CommandLine.ArgGroup;
4   import picocli.CommandLine.Option;
5   
6   public class RepExOptions {
7   
8     /**
9      * The ArgGroup keeps the RepExOptions together when printing help.
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       * -x or --repEx to execute temperature replica exchange.
51       */
52      @Option(names = {"-x", "--repEx"}, paramLabel = "false",
53          description = "Execute temperature replica exchange")
54      boolean repEx = false;
55  
56      /**
57       * --rs or --replicaSteps number of steps for temperature replica exchange
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       * -e or --exponent The exponent used to set the exponential temperature ladder for temperature
65       * replicas exchange.
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       * --oMC or --oneMonteCarlo executes 1 Monte Carlo move for each temperature in each cycle
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