Python sil

Turning materials on and off

This accounts for skips in Material numbers (ie mats = 1, 2, 3, 5, 6, 9) and also accounts for material names (ie "3 barrier").

 def TurnOffMat(mat):
   matname = "%d" %(mat)
   # Assume that the materials category has the substring "aterial" in it
   s = SILRestriction()
   cats = s.Categories()
   material_category = ""
   for x in cats:
      if "aterial" in x:
          material_category = x
   if material_category == "":
       print "*** Unable to locate material category ***\n"
       return
   sets = s.SetsInCategory(material_category)
   foundOne = False
   for x in sets:
       # If we have a material name like "3 barrier", then separate out the
       # '3' part for comparison.  If the name is just "3", then the following
       # command is a no-op.
       matnum = s.SetName(x).split(" ")[0]
       if matnum == matname:
           s.TurnOffSet(x)
           foundOne = True
   if not foundOne:
       print "*** Unable to locate material %d ***\n" %(mat)
       return
   SetPlotSILRestriction(s)
 
 def TurnOnMat(mat):
   matname = "%d" %(mat)
   # Assume that the materials category has the substring "aterial" in it
   s = SILRestriction()
   cats = s.Categories()
   material_category = ""
   for x in cats:
      if "aterial" in x:
          material_category = x
   if material_category == "":
       print "*** Unable to locate material category ***\n"
       return
   sets = s.SetsInCategory(material_category)
   foundOne = False
   for x in sets:
       # If we have a material name like "3 barrier", then separate out the
       # '3' part for comparison.  If the name is just "3", then the following
       # command is a no-op.
       matnum = s.SetName(x).split(" ")[0]
       if matnum == matname:
           s.TurnOnSet(x)
           foundOne = True
   if not foundOne:
       print "*** Unable to locate material %d ***\n" %(mat)
       return
   SetPlotSILRestriction(s)