コード例 #1
0
ファイル: block_on_spring.py プロジェクト: ianr-nrl/turbopy
class BlockDiagnostic(Diagnostic):
    def __init__(self, owner: Simulation, input_data: dict):
        super().__init__(owner, input_data)
        self.data = None
        self.component = input_data.get("component", 1)
        self.output_function = None
        self.csv = None

    def inspect_resource(self, resource):
        if "Block:" + self.component in resource:
            self.data = resource["Block:" + self.component]

    def diagnose(self):
        self.output_function(self.data[0, :])

    def initialize(self):
        # setup output method
        functions = {"stdout": self.print_diagnose,
                     "csv": self.csv_diagnose,
                     }
        self.output_function = functions[self.input_data["output_type"]]
        if self.input_data["output_type"] == "csv":
            diagnostic_size = (self.owner.clock.num_steps + 1, 3)
            self.csv = CSVOutputUtility(self.input_data["filename"], diagnostic_size)

    def finalize(self):
        self.diagnose()
        if self.input_data["output_type"] == "csv":
            self.csv.finalize()

    def print_diagnose(self, data):
        print(data)

    def csv_diagnose(self, data):
        self.csv.append(data)
コード例 #2
0
class ParticleDiagnostic(Diagnostic):
    def __init__(self, owner: Simulation, input_data: dict):
        super().__init__(owner, input_data)
        self.data = None
        self.component = input_data["component"]
        self.output_function = None
        self.outputter = None

    def inspect_resource(self, resource):
        if "ChargedParticle:" + self.component in resource:
            self.data = resource["ChargedParticle:" + self.component]

    def diagnose(self):
        self.outputter.diagnose(self.data[0, :])

    def initialize(self):
        # setup output method
        diagnostic_size = (self._owner.clock.num_steps + 1, 3)
        self.outputter = CSVOutputUtility(self._input_data["filename"],
                                          diagnostic_size)

    def finalize(self):
        self.diagnose()
        self.outputter.finalize()

    def print_diagnose(self, data):
        print(data)
コード例 #3
0
ファイル: block_on_spring.py プロジェクト: ianr-nrl/turbopy
 def initialize(self):
     # setup output method
     functions = {"stdout": self.print_diagnose,
                  "csv": self.csv_diagnose,
                  }
     self.output_function = functions[self.input_data["output_type"]]
     if self.input_data["output_type"] == "csv":
         diagnostic_size = (self.owner.clock.num_steps + 1, 3)
         self.csv = CSVOutputUtility(self.input_data["filename"], diagnostic_size)
コード例 #4
0
class BlockDiagnostic(Diagnostic):
    def __init__(self, owner: Simulation, input_data: dict):
        super().__init__(owner, input_data)
        self.data = None
        self.component = input_data.get("component", 1)
        self.outputter = None

    def inspect_resource(self, resource):
        if "Block:" + self.component in resource:
            self.data = resource["Block:" + self.component]

    def diagnose(self):
        self.outputter.diagnose(self.data[0, :])

    def initialize(self):
        diagnostic_size = (self._owner.clock.num_steps + 1, 3)
        self.outputter = CSVOutputUtility(self._input_data["filename"],
            diagnostic_size)

    def finalize(self):
        self.diagnose()
        self.outputter.finalize()
コード例 #5
0
 def initialize(self):
     # setup output method
     diagnostic_size = (self._owner.clock.num_steps + 1, 3)
     self.outputter = CSVOutputUtility(self._input_data["filename"],
                                       diagnostic_size)