1 """
2 Class that implements the common functionality for cases with multiple regions
3 """
4
5 from optparse import OptionGroup
6
7 from PyFoam.FoamInformation import oldAppConvention as oldApp
8
10 """ The class that looks for multiple mesh regions
11 """
12
14 grp=OptionGroup(self.parser,
15 "Multiple regions",
16 "Treatment of cases with multiple mesh regions")
17 grp.add_option("--all-regions",
18 action="store_true",
19 default=False,
20 dest="regions",
21 help="Executes the command for all available regions (builds a pseudo-case for each region)")
22
23 grp.add_option("--region",
24 dest="region",
25 action="append",
26 default=None,
27 help="Executes the command for a region (builds a pseudo-case for that region). A value of 'region0' is the default region")
28
29 grp.add_option("--keep-pseudocases",
30 action="store_true",
31 default=False,
32 dest="keeppseudo",
33 help="Keep the pseudo-cases that were built for a multi-region case")
34 self.parser.add_option_group(grp)
35
36
38 args=self.parser.getArgs()[:]
39 if oldApp():
40 if region!=None:
41 args[2]+="."+region
42 else:
43 if region!=None:
44 if "-case" in args:
45 args[args.index("-case")+1]=case+"."+region
46 else:
47 args+=["-case",case+"."+region]
48 return args
49