Example #1
0
	def test_generate_jac_manually(self):
		self.ODE = jitcode(**vanilla)
		self.ODE.generate_jac_C()
		self.ODE.set_integrator("vode")
		self.ODE.set_initial_value(y0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #2
0
 def test_omp(self):
     self.ODE.generate_f_C(chunk_size=1, do_cse=True)
     self.ODE.generate_jac_C(chunk_size=1, do_cse=True)
     self.ODE.generate_helpers_C(chunk_size=1)
     self.ODE.compile_C(omp=True)
     self.assertTrue(_is_C(self.ODE.f))
     self.assertTrue(_is_C(self.ODE.jac))
Example #3
0
 def test_save_and_load_with_jac(self):
     self.ODE = jitcode_lyap(**vanilla, n_lyap=n, wants_jacobian=True)
     filename = self.ODE.save_compiled(overwrite=True)
     self.ODE = jitcode_lyap((), n=n, n_lyap=n, module_location=filename)
     self.ODE.set_integrator("vode")
     self.assertTrue(_is_C(self.ODE.f))
     self.assertTrue(_is_C(self.ODE.jac))
Example #4
0
	def test_compile_without_jac(self):
		self.ODE = jitcode(**vanilla)
		self.ODE.compile_C()
		self.ODE.set_integrator("LSODA")
		self.ODE.set_initial_value(y0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #5
0
 def test_generate_jac_manually(self):
     self.ODE = jitcode(**vanilla)
     self.ODE.generate_jac_C()
     self.ODE.set_integrator("vode")
     self.ODE.set_initial_value(y0)
     self.assertTrue(_is_C(self.ODE.f))
     self.assertTrue(_is_C(self.ODE.jac))
Example #6
0
 def test_compile_without_jac(self):
     self.ODE = jitcode(**vanilla)
     self.ODE.compile_C()
     self.ODE.set_integrator("LSODA")
     self.ODE.set_initial_value(y0)
     self.assertTrue(_is_C(self.ODE.f))
     self.assertTrue(_is_C(self.ODE.jac))
Example #7
0
	def test_save_and_load_with_jac(self):
		self.ODE = jitcode_lyap(**vanilla,n_lyap=n,wants_jacobian=True)
		filename = self.ODE.save_compiled(overwrite=True)
		self.ODE = jitcode_lyap((),n=n,n_lyap=n,module_location=filename)
		self.ODE.set_integrator("vode")
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #8
0
	def test_heavily_chunked_jac(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.generate_jac_C(chunk_size=1,do_cse=True)
		self.ODE.set_integrator('vode')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #9
0
	def test_omp(self):
		self.ODE.generate_f_C(chunk_size=1,do_cse=True)
		self.ODE.generate_jac_C(chunk_size=1,do_cse=True)
		self.ODE.generate_helpers_C(chunk_size=1)
		self.ODE.compile_C(omp=True)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #10
0
	def test_generate_jac_manually(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.generate_jac_C()
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #11
0
	def test_generate_jac_manually(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.generate_jac_C()
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #12
0
	def test_lambdas_without_jac(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.generate_lambdas()
		self.assertIsNone(self.ODE.jac)
		self.ODE.set_integrator('vode')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #13
0
	def test_compile_without_jac(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.compile_C()
		self.assertIsNone(self.ODE.jac)
		self.ODE.set_integrator('lsoda')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #14
0
	def test_lambdas_without_jac(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.generate_lambdas()
		self.assertIsNone(self.ODE.jac)
		self.ODE.set_integrator('vode')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #15
0
	def test_default(self):
		self.ODE.generate_f_C()
		self.ODE.generate_jac_C()
		self.ODE.compile_C()
		if isinstance(self.ODE,jitcode) and self.ODE.f_sym():
			self.ODE.check()
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #16
0
	def test_compile_without_jac(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.compile_C()
		self.assertIsNone(self.ODE.jac)
		self.ODE.set_integrator('lsoda')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #17
0
 def test_default(self):
     self.ODE.generate_f_C()
     self.ODE.generate_jac_C()
     self.ODE.compile_C()
     if isinstance(self.ODE, jitcode) and self.ODE.f_sym():
         self.ODE.check()
     self.assertTrue(_is_C(self.ODE.f))
     self.assertTrue(_is_C(self.ODE.jac))
Example #18
0
	def test_save_and_load_from_different_directory(self):
		self.ODE = jitcode(wants_jacobian=True, **self.argdict)
		self.ODE.save_compiled(self.filename, overwrite=True)
		shutil.move(self.filename,self.tmpfile(self.filename))
		self.ODE = ode_from_module_file(self.tmpfile(self.filename))
		self.ODE.set_integrator('lsoda')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #19
0
	def test_save_and_load_from_different_directory(self):
		self.ODE = jitcode(wants_jacobian=True, **self.argdict)
		self.ODE.save_compiled(self.filename, overwrite=True)
		shutil.move(self.filename,self.tmpfile(self.filename))
		self.ODE = ode_from_module_file(self.tmpfile(self.filename))
		self.ODE.set_integrator('lsoda')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #20
0
	def test_save_with_default_name_and_load(self):
		self.ODE = jitcode(wants_jacobian=True, **self.argdict)
		self.ODE.save_compiled("", overwrite=True)
		self.filename = self.ODE._modulename + ".so"
		shutil.move(self.filename,self.tmpfile(self.filename))
		self.ODE = ode_from_module_file(self.tmpfile(self.filename))
		self.ODE.set_integrator('lsoda')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #21
0
	def test_save_with_default_name_and_load(self):
		self.ODE = jitcode(wants_jacobian=True, **self.argdict)
		self.ODE.save_compiled("", overwrite=True)
		self.filename = self.ODE._modulename + ".so"
		shutil.move(self.filename,self.tmpfile(self.filename))
		self.ODE = ode_from_module_file(self.tmpfile(self.filename))
		self.ODE.set_integrator('lsoda')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #22
0
	def test_save_and_load_with_jac(self):
		self.ODE = jitcode(wants_jacobian=True, **self.argdict)
		self.ODE.save_compiled(self.filename, overwrite=True)
		target = os.path.join(self.directory,self.filename)
		shutil.move(self.filename,target)
		self.ODE = ode_from_module_file(target)
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #23
0
	def test_save_and_load_with_jac(self):
		self.ODE = jitcode(wants_jacobian=True, **self.argdict)
		self.ODE.save_compiled(self.filename, overwrite=True)
		target = os.path.join(self.directory,self.filename)
		shutil.move(self.filename,target)
		self.ODE = ode_from_module_file(target)
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #24
0
	def test_normal_integration(self):
		for lambdas in (True,False):
			for integrator in integrators:
				with self.subTest(integrator=integrator,lambdas=lambdas):
					ODE = jitcode(**vanilla)
					if lambdas:
						ODE.generate_f_lambda()
						ODE.generate_jac_lambda()
					ODE.set_integrator(integrator[0])
					assert ODE._wants_jacobian == integrator[1]
					assert not  _is_C(ODE.f) == lambdas
					assert _is_lambda(ODE.f) == lambdas
					if integrator[1]:
						assert _is_lambda(ODE.jac) == lambdas
						assert not  _is_C(ODE.jac) == lambdas
					ODE.set_initial_value(y0,0.0)
					assert_allclose( ODE.integrate(1.0), y1, rtol=1e-3 )
Example #25
0
	def test_save_and_load(self):
		self.ODE = jitcode(**vanilla)
		filename = self.ODE.save_compiled(overwrite=True)
		self.ODE = jitcode(n=n,module_location=filename)
		self.ODE.set_integrator("RK45")
		self.ODE.set_initial_value(y0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertIsNone(self.ODE.jac)
Example #26
0
 def test_save_and_load(self):
     self.ODE = jitcode(**vanilla)
     filename = self.ODE.save_compiled(overwrite=True)
     self.ODE = jitcode(n=n, module_location=filename)
     self.ODE.set_integrator("RK45")
     self.ODE.set_initial_value(y0)
     self.assertTrue(_is_C(self.ODE.f))
     self.assertIsNone(self.ODE.jac)
Example #27
0
 def test_normal_integration(self):
     for lambdas in (True, False):
         for integrator in integrators:
             with self.subTest(integrator=integrator, lambdas=lambdas):
                 ODE = jitcode(**vanilla)
                 if lambdas:
                     ODE.generate_f_lambda()
                     ODE.generate_jac_lambda()
                 ODE.set_integrator(integrator[0])
                 assert ODE._wants_jacobian == integrator[1]
                 assert not _is_C(ODE.f) == lambdas
                 assert _is_lambda(ODE.f) == lambdas
                 if integrator[1]:
                     assert _is_lambda(ODE.jac) == lambdas
                     assert not _is_C(ODE.jac) == lambdas
                 ODE.set_initial_value(y0, 0.0)
                 assert_allclose(ODE.integrate(1.0), y1, rtol=1e-3)
Example #28
0
 def test_callback(self):
     ODE = jitcode(**callback)
     ODE.generate_f_C()
     ODE.compile_C()
     ODE.check()
     self.assertTrue(_is_C(ODE.f))
     ODE._initialise(*[fun for _, fun, _ in callback["callback_functions"]])
     assert_allclose(ODE.f(0.0, y0), f_of_y0, rtol=1e-5)
Example #29
0
	def test_save_to_directory_and_load(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.compile_C(modulename=modulename)
		self.ODE.save_compiled(self.tmpfile(""), overwrite=True)
		self.ODE = ode_from_module_file(self.tmpfile(self.filename))
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertIsNone(self.ODE.jac)
Example #30
0
	def test_save_to_directory_and_load(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.compile_C(modulename=modulename)
		self.ODE.save_compiled(self.tmpfile(""), overwrite=True)
		self.ODE = ode_from_module_file(self.tmpfile(self.filename))
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertIsNone(self.ODE.jac)
Example #31
0
	def test_initial_value_first(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.set_initial_value(y0,0.0)
		self.ODE.set_integrator('dop853')
		self.assertTrue(_is_C(self.ODE.f))
		self.assertIsNotNone(self.ODE.jac)
Example #32
0
	def test_standard_order(self):
		self.ODE = jitcode(**vanilla)
		self.ODE.set_integrator("dopri5")
		self.ODE.set_initial_value(y0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertIsNone(self.ODE.jac)
Example #33
0
	def test_standard_order_with_jac(self):
		self.ODE = jitcode(**vanilla)
		self.ODE.set_integrator("lsoda")
		self.ODE.set_initial_value(y0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #34
0
 def test_initalise_with_dict(self):
     self.ODE = jitcode(**vanilla)
     initial_value = {y(i): y0[i] for i in range(n)}
     self.ODE.set_initial_value(initial_value)
     self.ODE.set_integrator("dop853")
     self.assertTrue(_is_C(self.ODE.f))
Example #35
0
 def test_initialise_first(self):
     self.ODE = jitcode(**vanilla)
     self.ODE.set_initial_value(y0)
     self.ODE.set_integrator("dop853")
     self.assertTrue(_is_C(self.ODE.f))
Example #36
0
 def test_standard_order_with_jac(self):
     self.ODE = jitcode(**vanilla)
     self.ODE.set_integrator("lsoda")
     self.ODE.set_initial_value(y0)
     self.assertTrue(_is_C(self.ODE.f))
     self.assertTrue(_is_C(self.ODE.jac))
Example #37
0
 def test_standard_order(self):
     self.ODE = jitcode(**vanilla)
     self.ODE.set_integrator("dopri5")
     self.ODE.set_initial_value(y0)
     self.assertTrue(_is_C(self.ODE.f))
     self.assertIsNone(self.ODE.jac)
Example #38
0
	def test_initialise_first(self):
		self.ODE = jitcode(**vanilla)
		self.ODE.set_initial_value(y0)
		self.ODE.set_integrator("dop853")
		self.assertTrue(_is_C(self.ODE.f))
Example #39
0
	def test_initial_value_first(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.set_initial_value(y0,0.0)
		self.ODE.set_integrator('dop853')
		self.assertTrue(_is_C(self.ODE.f))
		self.assertIsNotNone(self.ODE.jac)
Example #40
0
	def test_standard_order(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertIsNone(self.ODE.jac)
Example #41
0
	def test_standard_order_with_jac(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.set_integrator('vode')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #42
0
	def test_heavily_chunked_f(self):
		self.ODE = jitcode(wants_jacobian=True, **self.argdict)
		self.ODE.generate_f_C(chunk_size=1,do_cse=True)
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
Example #43
0
	def test_standard_order_with_jac(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.set_integrator('vode')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertTrue(_is_C(self.ODE.jac))
Example #44
0
	def test_standard_order(self):
		self.ODE = jitcode(**self.argdict)
		self.ODE.set_integrator('dopri5')
		self.ODE.set_initial_value(y0,0.0)
		self.assertTrue(_is_C(self.ODE.f))
		self.assertIsNone(self.ODE.jac)