def test_atmosphere_pik(self): "Model 'pik'" parameterizations = { "martin": (248.13, [248.13], [self.P]), "huybrechts_dewolde": (252.59, [237.973373], [self.P]), "martin_huybrechts_dewolde": (248.13, [233.51337298], [self.P]), "era_interim": (256.27, [243.0939774], [self.P]), "era_interim_sin": (255.31577, [241.7975841], [self.P]), "era_interim_lon": (248.886139, [233.3678998], [self.P]) } for p, (T, Ts, Ps) in parameterizations.items(): config.set_string("atmosphere.pik.parameterization", p) model = PISM.AtmospherePIK(self.grid) model.init(self.geometry) # t and dt are irrelevant here model.update(self.geometry, 0, 1) check_model(model, T=T, P=self.P, ts=[0.5], Ts=Ts, Ps=Ps) assert model.max_timestep(0).infinite() try: config.set_string("atmosphere.pik.parameterization", "invalid") model = PISM.AtmospherePIK(self.grid) assert False, "failed to catch an invalid parameterization" except RuntimeError: pass