Source code for PyFoam.Applications.CommonMultiRegion

"""
Class that implements the common functionality for cases with multiple regions
"""

from optparse import OptionGroup

from PyFoam.FoamInformation import oldAppConvention as oldApp

[docs]class CommonMultiRegion(object): """ The class that looks for multiple mesh regions """
[docs] def addOptions(self): grp=OptionGroup(self.parser, "Multiple regions", "Treatment of cases with multiple mesh regions") grp.add_option("--all-regions", action="store_true", default=False, dest="regions", help="Executes the command for all available regions (builds a pseudo-case for each region)") grp.add_option("--region", dest="region", action="append", default=None, help="Executes the command for a region (builds a pseudo-case for that region). A value of 'region0' is the default region") grp.add_option("--keep-pseudocases", action="store_true", default=False, dest="keeppseudo", help="Keep the pseudo-cases that were built for a multi-region case") self.parser.add_option_group(grp)
[docs] def buildRegionArgv(self,case,region): args=self.parser.getArgs()[:] if oldApp(): if region!=None: args[2]+="."+region else: if region!=None: if "-case" in args: args[args.index("-case")+1]=case+"."+region else: args+=["-case",case+"."+region] return args