580 |
M.run(T.getMethod('on_load')) |
M.run(T.getMethod('on_load')) |
581 |
M.solve(ascpy.Solver('QRSlv'),ascpy.SolverReporter()) |
M.solve(ascpy.Solver('QRSlv'),ascpy.SolverReporter()) |
582 |
|
|
583 |
|
def testvary(self): |
584 |
|
self.L.load('steam/dsgsat3.a4c') |
585 |
|
T = self.L.findType('dsgsat3') |
586 |
|
M = T.getSimulation('sim',False) |
587 |
|
M.run(T.getMethod('on_load')) |
588 |
|
M.solve(ascpy.Solver('QRSlv'),ascpy.SolverReporter()) |
589 |
|
print "----- setting qdot_s -----" |
590 |
|
M.qdot_s.setRealValueWithUnits(1000,"W/m") |
591 |
|
M.solve(ascpy.Solver('QRSlv'),ascpy.SolverReporter()) |
592 |
|
print "----- setting qdot_s -----" |
593 |
|
M.qdot_s.setRealValueWithUnits(2000,"W/m") |
594 |
|
M.solve(ascpy.Solver('QRSlv'),ascpy.SolverReporter()) |
595 |
|
|
596 |
def teststeadylsode(self): |
def teststeadylsode(self): |
597 |
"test that steady conditions are stable with LSODE" |
"test that steady conditions are stable with LSODE" |
598 |
M = self.testdsgsat() |
M = self.testdsgsat() |
635 |
I.setMaxSubSteps(100) |
I.setMaxSubSteps(100) |
636 |
I.setReporter(ascpy.IntegratorReporterConsole(I)) |
I.setReporter(ascpy.IntegratorReporterConsole(I)) |
637 |
I.setLinearTimesteps(ascpy.Units("s"), 0, 3600, 5) |
I.setLinearTimesteps(ascpy.Units("s"), 0, 3600, 5) |
638 |
try: |
I.analyse() |
|
I.analyse() |
|
|
except Exception,e: |
|
|
print "ERROR: %s" % e |
|
|
I.writeDebug(sys.stdout) |
|
|
|
|
639 |
I.solve() |
I.solve() |
640 |
self.assertAlmostEqual(float(M.T_w[2]),Tw1) |
self.assertAlmostEqual(float(M.T_w[2]),Tw1) |
641 |
M.qdot_s.setRealValueWithUnits(1000,"W/m") |
M.qdot_s.setRealValueWithUnits(1000,"W/m") |
644 |
print "dTw/dt = %f" % M.dTw_dt[2] |
print "dTw/dt = %f" % M.dTw_dt[2] |
645 |
self.assertNotAlmostEqual(M.dTw_dt[2],0.0) |
self.assertNotAlmostEqual(M.dTw_dt[2],0.0) |
646 |
|
|
647 |
|
def teststeadyida2(self): |
648 |
|
""" test steady with higher radiation level """ |
649 |
|
M = self.testdsgsat() |
650 |
|
T = self.L.findType('dsgsat3') |
651 |
|
M.qdot_s.setRealValueWithUnits(1000,"W/m") |
652 |
|
M.solve(ascpy.Solver('QRSlv'),ascpy.SolverReporter()) |
653 |
|
M.run(T.getMethod('free_states')) |
654 |
|
I = ascpy.Integrator(M) |
655 |
|
I.setEngine('IDA') |
656 |
|
I.setParameter('linsolver','DENSE') |
657 |
|
I.setParameter('safeeval',True) |
658 |
|
I.setParameter('rtol',1e-5) |
659 |
|
I.setParameter('atolvect',False) |
660 |
|
I.setParameter('atol',1e-5) |
661 |
|
I.setInitialSubStep(0.01) |
662 |
|
I.setMaxSubSteps(100) |
663 |
|
I.setReporter(ascpy.IntegratorReporterConsole(I)) |
664 |
|
I.setLogTimesteps(ascpy.Units("s"), 1, 3600, 5) |
665 |
|
I.analyse() |
666 |
|
I.solve() |
667 |
|
|
668 |
def testpeturbida(self): |
def testpeturbida(self): |
669 |
M = self.testdsgsat() |
M = self.testdsgsat() |
670 |
self.assertAlmostEqual(M.dTw_dt[2],0.0) |
self.assertAlmostEqual(M.dTw_dt[2],0.0) |
680 |
I.setParameter('rtol',1e-5) |
I.setParameter('rtol',1e-5) |
681 |
I.setParameter('atolvect',False) |
I.setParameter('atolvect',False) |
682 |
I.setParameter('atol',1e-5) |
I.setParameter('atol',1e-5) |
683 |
I.setInitialSubStep(0.0001) |
I.setInitialSubStep(0.1) |
684 |
I.setReporter(ascpy.IntegratorReporterConsole(I)) |
I.setReporter(ascpy.IntegratorReporterConsole(I)) |
685 |
I.setLogTimesteps(ascpy.Units("s"), 1, 10, 20) |
I.setLogTimesteps(ascpy.Units("s"), 1, 100, 20) |
686 |
I.analyse() |
I.analyse() |
687 |
I.solve() |
I.solve() |
688 |
|
|