import ifm FEM_FILE = 'FlowMass_Topographic_Transient2.fem' DAC_FILE = 'FlowMass_Topographic_Transient2.dac' SeaLevelSeries = [-0.089, -0.036, -0.049, -0.093, -0.113, -0.156, -0.180, -0.166, -0.171, -0.084, 0.050, 0.076, -0.154, -0.216, -0.161, -0.105, 0.072, 0.102, 0.022, -0.073] doc = ifm.loadDocument(FEM_FILE) global selDict SelDict = {} for i in [1, 2, 3]: sel_items = doc.getSelectionItems(ifm.Enum.SEL_NODES, i) SelDict[i] = sel_items def preTimeStep(doc): simTime = doc.getAbsoluteSimulationTime() print('Sim. Time: ', simTime) for group in SelDict: for item in SelDict[group]: Elv = doc.getParamValue(ifm.Enum.P_ELEV, item) if Elv < SeaLevelSeries[int(simTime)]: HydraulicBC = (SeaLevelSeries[int(simTime)]-Elv)*0.0245 doc.setBcFlowTypeAndValueAtCurrentTime(item, 1, 0, HydraulicBC) if item == 1: print('Node: ', item, 'hydarulicBC: ', doc.getBcFlowValue(item)) else: doc.setBcFlowTypeAndValueAtCurrentTime(item, 0, 0, 0) doc.startSimulator(DAC_FILE, 2, [1, 2, 3, 4, 5])