Source code for anuga.operators.set_stage_operator

"""
Set stage operator

Constraints: See GPL license in the user guide
Version: 1.0 ($Revision: 7731 $)
"""
__author__="steve"
__date__ ="$09/03/2012 4:46:39 PM$"


from anuga import Domain
from anuga import Quantity
import numpy as num
import anuga.utilities.log as log

from anuga.geometry.polygon import inside_polygon

from anuga.operators.base_operator import Operator
from anuga.operators.set_stage import Set_stage
from anuga.config import indent



[docs] class Set_stage_operator(Operator, Set_stage): """ Set the stage over a region, enforcing stage >= elevation. """ __call__ = Set_stage.__call__ get_stage = Set_stage.get_value set_stage = Set_stage.set_value
[docs] def __init__(self, domain, stage=None, region=None, indices=None, polygon=None, center=None, radius=None, line=None, description=None, label=None, logging=False, verbose=False): Set_stage.__init__(self, domain, stage=stage, region=region, indices=indices, polygon=polygon, center=center, radius=radius, line=line, verbose=verbose) Operator.__init__(self, domain, description, label, logging, verbose)
[docs] def parallel_safe(self): """Operator is applied independently on each cell and so is parallel safe. """ return True
def statistics(self): message = self.label + ': Set_stage_operator' message = message + ' on triangles '+ str(self.indices) return message def timestepping_statistics(self): message = indent + self.label + ': Set_stage = ' + str(self.get_stage()) message += ' at center '+str(self.center) return message
#=============================================================================== # Specific Stage Operators for circular region. #=============================================================================== class Circular_set_stage_operator(Set_stage_operator): """ Set stage over a circular region """ def __init__(self, domain, stage=0.0, center=None, radius=None, verbose=False): assert center is not None assert radius is not None Set_stage_operator.__init__(self, domain, stage=stage, center=center, radius=radius, verbose=verbose) #=============================================================================== # Specific Stage Operators for polygonal region. #=============================================================================== class Polygonal_set_stage_operator(Set_stage_operator): """ Set stage over a polygonal region """ def __init__(self, domain, stage=0.0, polygon=None, verbose=False): Set_stage_operator.__init__(self, domain, stage=stage, polygon=polygon, verbose=verbose)