Commit f875fbc0 authored by Martin Bauer's avatar Martin Bauer
Browse files

Simplify constant square roots

parent d5c24d0f
......@@ -299,6 +299,9 @@ class CustomSympyPrinter(CCodePrinter):
def _print_Pow(self, expr):
"""Don't use std::pow function, for small integer exponents, write as multiplication"""
if not expr.free_symbols:
return self._typed_number(expr.evalf(), get_type_of_expression(expr))
if expr.exp.is_integer and expr.exp.is_number and 0 < expr.exp < 8:
return "(" + self._print(sp.Mul(*[expr.base] * expr.exp, evaluate=False)) + ")"
elif expr.exp.is_integer and expr.exp.is_number and - 8 < expr.exp < 0:
......
......@@ -70,6 +70,9 @@ class cast_func(sp.Function):
def is_commutative(self):
return self.args[0].is_commutative
def _eval_evalf(self, *args, **kwargs):
return self.args[0].evalf()
@property
def dtype(self):
return self.args[1]
......
......@@ -13,15 +13,15 @@
This notebook tests the model presented in the dentritic growth tutorial in 3D.
%% Cell type:code id: tags:
``` python
target = 'cpu'
target = 'gpu'
gpu = target == 'gpu'
domain_size = (25, 25, 25) if 'is_test_run' in globals() else (300, 300, 300)
dh = ps.create_data_handling(domain_size=domain_size, periodicity=True)
dh = ps.create_data_handling(domain_size=domain_size, periodicity=True, default_target=target)
φ_field = dh.add_array('phi', latex_name='φ')
φ_delta_field = dh.add_array('phidelta', latex_name='φ_D')
t_field = dh.add_array('T')
```
......@@ -62,24 +62,31 @@
εVal
```
%%%% Output: execute_result
$$\bar{\epsilon} \left(δ \left(\frac{{\partial_{0} {{φ}_{C}}}^{4}}{\left({\partial_{0} {{φ}_{C}}}^{2} + {\partial_{1} {{φ}_{C}}}^{2} + {\partial_{2} {{φ}_{C}}}^{2}\right)^{2}} + \frac{{\partial_{1} {{φ}_{C}}}^{4}}{\left({\partial_{0} {{φ}_{C}}}^{2} + {\partial_{1} {{φ}_{C}}}^{2} + {\partial_{2} {{φ}_{C}}}^{2}\right)^{2}} + \frac{{\partial_{2} {{φ}_{C}}}^{4}}{\left({\partial_{0} {{φ}_{C}}}^{2} + {\partial_{1} {{φ}_{C}}}^{2} + {\partial_{2} {{φ}_{C}}}^{2}\right)^{2}}\right) + 1\right)$$
⎛ ⎛ 4
⎜ ⎜ D(phi_C) D(phi_C
\bar{\epsilon}⋅⎜δ⋅⎜──────────────────────────────────── + ────────────────────
⎜ ⎜ 2
⎜ ⎜⎛ 2 2 2⎞ 2
⎝ ⎝⎝D(phi_C) + D(phi_C) + D(phi_C) ⎠ ⎝D(phi_C) + D(phi_C
$\displaystyle \bar{\epsilon} \left(δ \left(\frac{{\partial_{0} {{φ}_{(0,0,0)}}}^{4}}{\left({\partial_{0} {{φ}_{(0,0,0)}}}^{2} + {\partial_{1} {{φ}_{(0,0,0)}}}^{2} + {\partial_{2} {{φ}_{(0,0,0)}}}^{2}\right)^{2}} + \frac{{\partial_{1} {{φ}_{(0,0,0)}}}^{4}}{\left({\partial_{0} {{φ}_{(0,0,0)}}}^{2} + {\partial_{1} {{φ}_{(0,0,0)}}}^{2} + {\partial_{2} {{φ}_{(0,0,0)}}}^{2}\right)^{2}} + \frac{{\partial_{2} {{φ}_{(0,0,0)}}}^{4}}{\left({\partial_{0} {{φ}_{(0,0,0)}}}^{2} + {\partial_{1} {{φ}_{(0,0,0)}}}^{2} + {\partial_{2} {{φ}_{(0,0,0)}}}^{2}\right)^{2}}\right) + 1\right)$
⎛ ⎛ 4
⎜ ⎜ D(φ[0,0,0])
\bar{\epsilon}⋅⎜δ⋅⎜───────────────────────────────────────────── + ───────────
⎜ ⎜ 2
⎜ ⎜⎛ 2 2 2⎞
⎝ ⎝⎝D(φ[0,0,0]) + D(φ[0,0,0]) + D(φ[0,0,0]) ⎠ ⎝D(φ[0,0,0]
4 4 ⎞ ⎞
) D(phi_C) ⎟ ⎟
──────────────── + ────────────────────────────────────⎟ + 1⎟
2 2⎟ ⎟
2 2⎞ ⎛ 2 2 2⎞ ⎟ ⎟
) + D(phi_C) ⎠ ⎝D(phi_C) + D(phi_C) + D(phi_C) ⎠ ⎠ ⎠
4 4
D(φ[0,0,0]) D(φ[0,0,0])
────────────────────────────────── + ─────────────────────────────────────────
2
2 2 2⎞ ⎛ 2 2
) + D(φ[0,0,0]) + D(φ[0,0,0]) ⎠ ⎝D(φ[0,0,0]) + D(φ[0,0,0]) + D(φ[0,0,0]
⎞ ⎞
⎟ ⎟
────⎟ + 1⎟
2⎟ ⎟
2⎞ ⎟ ⎟
) ⎠ ⎠ ⎠
%% Cell type:code id: tags:
``` python
def m_func(temperature):
......@@ -123,12 +130,12 @@
parameters
```
%%%% Output: execute_result
![](data:image/png;base64,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)
$$\left \{ \pi : 3.14159265358979, \quad T_{eq} : 1.0, \quad \bar{\epsilon} : 0.01, \quad j : 6, \quad α : 0.9, \quad γ : 10, \quad δ : 0.3, \quad θ_{0} : 0.2, \quad κ : 1.8, \quad τ : 0.0003\right \}$$
![](data:image/png;base64,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)
$\displaystyle \left\{ \pi : 3.14159265358979, \ T_{eq} : 1.0, \ \bar{\epsilon} : 0.01, \ j : 6, \ α : 0.9, \ γ : 10, \ δ : 0.3, \ θ_{0} : 0.2, \ κ : 1.8, \ τ : 0.0003\right\}$
{π: 3.14159265358979, T_eq: 1.0, \bar{\epsilon}: 0.01, j: 6, α: 0.9, γ: 10, δ:
0.3, θ₀: 0.2, κ: 1.8, τ: 0.0003}
%% Cell type:code id: tags:
......@@ -153,14 +160,14 @@
temperatureEqs
```
%%%% Output: execute_result
$$\left [ {{T}_{C}} \leftarrow 0.0111111111111111 {{T}_{B}} + 0.933333333333333 {{T}_{C}} + 0.0111111111111111 {{T}_{E}} + 0.0111111111111111 {{T}_{N}} + 0.0111111111111111 {{T}_{S}} + 0.0111111111111111 {{T}_{T}} + 0.0111111111111111 {{T}_{W}} + 1.8 \cdot 10^{-5} {{φ_D}_{C}}\right ]$$
[T_C := 0.0111111111111111⋅T_B + 0.933333333333333⋅T_C + 0.0111111111111111⋅T_
E + 0.0111111111111111⋅T_N + 0.0111111111111111⋅T_S + 0.0111111111111111⋅T_T +
0.0111111111111111⋅T_W + 1.8e-5⋅phidelta_C]
$\displaystyle \left[ {{T}_{(0,0,0)}} \leftarrow 0.0111111111111111 {{T}_{(-1,0,0)}} + 0.0111111111111111 {{T}_{(0,-1,0)}} + 0.0111111111111111 {{T}_{(0,0,-1)}} + 0.933333333333333 {{T}_{(0,0,0)}} + 0.0111111111111111 {{T}_{(0,0,1)}} + 0.0111111111111111 {{T}_{(0,1,0)}} + 0.0111111111111111 {{T}_{(1,0,0)}} + 1.8 \cdot 10^{-5} {{φ_D}_{(0,0,0)}}\right]$
[T_C := 0.0111111111111111⋅T_W + 0.0111111111111111⋅T_S + 0.0111111111111111⋅T
_B + 0.933333333333333⋅T_C + 0.0111111111111111⋅T_T + 0.0111111111111111⋅T_N +
0.0111111111111111⋅T_E + 1.8e-5⋅phidelta_C]
%% Cell type:code id: tags:
``` python
φ_kernel = ps.create_kernel(φEqs, cpu_openmp=4, target=target).compile()
......@@ -214,21 +221,22 @@
print(dh)
```
%%%% Output: display_data
![](data:image/png;base64,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)
![](data:image/png;base64,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)
%% Cell type:code id: tags:
``` python
if 'is_test_run' in globals():
time_loop(2)
assert np.isfinite(dh.max('phi'))
assert np.isfinite(dh.max('T'))
assert np.isfinite(dh.max('phidelta'))
else:
from time import perf_counter
vtk_writer = dh.create_vtk_writer('dentritic_growth_large', ['phi'])
last = perf_counter()
for i in range(300):
time_loop(100)
vtk_writer(i)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment