Changeset 8877


Ignore:
Timestamp:
May 27, 2013, 8:17:08 PM (11 years ago)
Author:
steve
Message:

Example of gate control

Location:
trunk/anuga_core/source/anuga_parallel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/anuga_core/source/anuga_parallel/parallel_structure_operator.py

    r8875 r8877  
    33import math
    44import parallel_inlet_enquiry
     5import pypar
    56
    67from anuga.utilities.system_tools import log_to_file
     
    5758                 enquiry_proc = None):
    5859
    59         import pypar
     60
    6061        self.myid = pypar.rank()
    6162        self.num_procs = pypar.size()
     
    210211
    211212    def __call__(self):
    212 
    213         import pypar
    214213
    215214        timestep = self.domain.get_timestep()
     
    424423        # with this structure
    425424
    426         import pypar
    427 
    428425        message = ' '
    429426
     
    588585        # Should be called from all processors associated with operator
    589586
    590         import pypar
    591        
     587        enq0 = None
     588        enq1 = None
    592589
    593590        get0 = 'self.inlets[0].get_enquiry_stage()'
     
    622619        # Should be called from all processors associated with operator
    623620
    624         import pypar
    625 
     621        enq0 = None
     622        enq1 = None
    626623
    627624        get0 = 'self.inlets[0].get_enquiry_depth()'
     
    657654    def get_enquiry_positions(self):
    658655
    659         import pypar
     656        enq0 = None
     657        enq1 = None
    660658
    661659        get0 = 'self.inlets[0].get_enquiry_position()'
     
    691689    def get_enquiry_xmoms(self):
    692690
     691        enq0 = None
     692        enq1 = None
     693
    693694        get0 = 'self.inlets[0].get_enquiry_xmom()'
    694695        get1 = 'self.inlets[1].get_enquiry_xmom()'
    695696
    696         import pypar
    697 
    698697
    699698        if self.myid == self.master_proc:
     
    723722
    724723    def get_enquiry_ymoms(self):
     724
     725        enq0 = None
     726        enq1 = None
    725727
    726728        get0 = 'self.inlets[0].get_enquiry_ymom()'
    727729        get1 = 'self.inlets[1].get_enquiry_ymom()'
    728730
    729         import pypar
    730 
    731731
    732732        if self.myid == self.master_proc:
     
    757757
    758758    def get_enquiry_elevations(self):
     759
     760        enq0 = None
     761        enq1 = None
    759762
    760763        get0 = 'self.inlets[0].get_enquiry_elevation()'
    761764        get1 = 'self.inlets[1].get_enquiry_elevation()'
    762765
    763         import pypar
    764 
    765766
    766767        if self.myid == self.master_proc:
     
    792793
    793794    def get_enquiry_water_depths(self):
     795
     796        enq0 = None
     797        enq1 = None
    794798
    795799        get0 = 'self.inlets[0].get_enquiry_water_depth()'
    796800        get1 = 'self.inlets[1].get_enquiry_water_depth()'
    797801
    798         import pypar
    799 
    800802
    801803        if self.myid == self.master_proc:
     
    826828
    827829    def get_enquiry_invert_elevations(self):
     830
     831        enq0 = None
     832        enq1 = None
    828833
    829834        get0 = 'self.inlets[0].get_enquiry_invert_elevation()'
    830835        get1 = 'self.inlets[1].get_enquiry_invert_elevation()'
    831836
    832         import pypar
    833 
    834837
    835838        if self.myid == self.master_proc:
     
    860863
    861864    def get_enquiry_velocitys(self):
     865
     866        enq0 = None
     867        enq1 = None
    862868
    863869        get0 = 'self.inlets[0].get_enquiry_velocity()'
    864870        get1 = 'self.inlets[1].get_enquiry_velocity()'
    865871
    866         import pypar
    867 
    868 
    869872        if self.myid == self.master_proc:
    870873
     
    894897
    895898    def get_enquiry_xvelocitys(self):
     899
     900        enq0 = None
     901        enq1 = None
    896902
    897903        get0 = 'self.inlets[0].get_enquiry_xvelocity()'
    898904        get1 = 'self.inlets[1].get_enquiry_xvelocity()'
    899905
    900         import pypar
    901 
    902 
    903906        if self.myid == self.master_proc:
    904907
     
    927930
    928931    def get_enquiry_yvelocitys(self):
     932
     933        enq0 = None
     934        enq1 = None
    929935
    930936        get0 = 'self.inlets[0].get_enquiry_yvelocity()'
    931937        get1 = 'self.inlets[1].get_enquiry_yvelocity()'
    932938
    933         import pypar
    934939
    935940        if self.myid == self.master_proc:
     
    960965
    961966    def get_enquiry_speeds(self):
     967
     968        enq0 = None
     969        enq1 = None
    962970
    963971        get0 = 'self.inlets[0].get_enquiry_speed()'
    964972        get1 = 'self.inlets[1].get_enquiry_speed()'
    965973
    966         import pypar
    967 
    968 
     974       
    969975        if self.myid == self.master_proc:
    970976
     
    9941000
    9951001    def get_enquiry_velocity_heads(self):
     1002
     1003        enq0 = None
     1004        enq1 = None
    9961005
    9971006        get0 = 'self.inlets[0].get_enquiry_velocity_head()'
    9981007        get1 = 'self.inlets[1].get_enquiry_velocity_head()'
    9991008
    1000         import pypar
    1001 
    1002 
    10031009        if self.myid == self.master_proc:
    10041010
     
    10281034
    10291035    def get_enquiry_total_energys(self):
     1036
     1037        enq0 = None
     1038        enq1 = None
    10301039
    10311040        get0 = 'self.inlets[0].get_enquiry_total_energy()'
    10321041        get1 = 'self.inlets[1].get_enquiry_total_energy()'
    10331042
    1034         import pypar
    1035 
    1036 
    10371043        if self.myid == self.master_proc:
    10381044
     
    10621068
    10631069    def get_enquiry_specific_energys(self):
     1070
     1071        enq0 = None
     1072        enq1 = None
    10641073
    10651074        get0 = 'self.inlets[0].get_enquiry_specific_energy()'
    10661075        get1 = 'self.inlets[1].get_enquiry_specific_energy()'
    10671076
    1068         import pypar
    1069 
    1070 
    1071         if self.myid == self.master_proc:
    1072 
    1073             if self.myid == self.enquiry_proc[0]:
    1074                 enq0 = eval(get0)
    1075             else:
    1076                 enq0 = pypar.receive(self.enquiry_proc[0])
    1077 
    1078 
    1079             if self.myid == self.enquiry_proc[1]:
    1080                 enq1 = eval(get1)
    1081             else:
    1082                 enq1 = pypar.receive(self.enquiry_proc[1])
    1083 
    1084         else:
    1085             if self.myid == self.enquiry_proc[0]:
    1086                 enq0 = eval(get0)
    1087                 pypar.send(enq0, self.master_proc)
    1088 
    1089             if self.myid == self.enquiry_proc[1]:
    1090                 enq1 = eval(get1)
    1091                 pypar.send(enq1, self.master_proc)
    1092 
    1093 
    1094         return [enq0, enq1]
    1095 
    1096 
     1077        if self.myid == self.master_proc:
     1078
     1079            if self.myid == self.enquiry_proc[0]:
     1080                enq0 = eval(get0)
     1081            else:
     1082                enq0 = pypar.receive(self.enquiry_proc[0])
     1083
     1084
     1085            if self.myid == self.enquiry_proc[1]:
     1086                enq1 = eval(get1)
     1087            else:
     1088                enq1 = pypar.receive(self.enquiry_proc[1])
     1089
     1090        else:
     1091            if self.myid == self.enquiry_proc[0]:
     1092                enq0 = eval(get0)
     1093                pypar.send(enq0, self.master_proc)
     1094
     1095            if self.myid == self.enquiry_proc[1]:
     1096                enq1 = eval(get1)
     1097                pypar.send(enq1, self.master_proc)
     1098
     1099
     1100        return [enq0, enq1]
     1101
     1102
  • trunk/anuga_core/source/anuga_parallel/run_parallel_gate_operator.py

    r8875 r8877  
    1212
    1313                           
    14 #from anuga.culvert_flows.culvert_routines import boyd_generalised_culvert_model
    15      
    1614from math import pi, pow, sqrt
    1715
     
    8280    domain.set_name('run_gate_operator')                 # Output name
    8381    domain.set_flow_algorithm('2_0')
    84     #domain.set_beta(1.5)
     82
    8583
    8684
     
    116114
    117115# Close the gate
    118 gate.set_culvert_height(0.0)
     116if gate is not None:
     117    gate.set_culvert_height(0.0)
    119118
    120119line = [[0.0, 5.0], [0.0, 10.0]]
     
    162161        [w0, w1] = gate.get_enquiry_water_depths()
    163162
     163        output = gate.discharge_routine()
    164164
    165165        if myid == gate.get_master_proc():
     
    170170            print 'myid ', myid, w0,w1
    171171
    172 
    173             print gate.discharge_routine()
     172            print 'myid ',myid, output
     173
    174174
    175175            if d0 > 0.2: gate.set_culvert_height(10.0)
Note: See TracChangeset for help on using the changeset viewer.