Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

4 changed files with 10 additions and 15 deletions

8
.gitignore vendored
View File

@ -1,9 +1,5 @@
.idea/ .idea/
*.h5
__pycache__ __pycache__
*.py[cod] *.h5
build/ *.pyc
dist/
*.egg-info/

View File

@ -78,8 +78,7 @@ int p{{r}} = + (int) di{{r}};
int wrap_{{r}} = (s{{r}} - 1) * (int) di{{r}}; int wrap_{{r}} = (s{{r}} - 1) * (int) di{{r}};
if ( {{r}} == 0 ) { if ( {{r}} == 0 ) {
m{{r}} = wrap_{{r}}; m{{r}} = wrap_{{r}};
} } else if ( {{r}} == s{{r}} - 1 ) {
if ( {{r}} == s{{r}} - 1 ) {
p{{r}} = -wrap_{{r}}; p{{r}} = -wrap_{{r}};
} }
{% endfor %} {% endfor %}

View File

@ -170,7 +170,7 @@ class Simulation(object):
ctype = type_to_C(self.arg_type) ctype = type_to_C(self.arg_type)
def ptr(arg: str) -> str: def ptr(arg: str) -> str:
return ctype + ' *' + arg return ctype + ' * restrict ' + arg
base_fields = OrderedDict() base_fields = OrderedDict()
base_fields[ptr('E')] = self.E base_fields[ptr('E')] = self.E
@ -286,13 +286,13 @@ class Simulation(object):
alpha_max = pml['cfs_alpha'] alpha_max = pml['cfs_alpha']
def par(x): def par(x):
scaling = (x / pml['thickness']) ** pml['m'] scaling = ((x / (pml['thickness'])) ** pml['m'])
sigma = scaling * sigma_max sigma = scaling * sigma_max
kappa = 1 + scaling * (kappa_max - 1) kappa = 1 + scaling * (kappa_max - 1)
alpha = ((1 - x / pml['thickness']) ** pml['ma']) * alpha_max alpha = ((1 - x / pml['thickness']) ** pml['ma']) * alpha_max
p0 = numpy.exp(-(sigma / kappa + alpha) * self.dt) p0 = numpy.exp(-(sigma / kappa + alpha) * self.dt)
p1 = sigma / (sigma + kappa * alpha) * (p0 - 1) p1 = sigma / (sigma + kappa * alpha) * (p0 - 1)
p2 = 1 / kappa p2 = 1/kappa
return p0, p1, p2 return p0, p1, p2
xe, xh = (numpy.arange(1, pml['thickness'] + 1, dtype=self.arg_type)[::-1] for _ in range(2)) xe, xh = (numpy.arange(1, pml['thickness'] + 1, dtype=self.arg_type)[::-1] for _ in range(2))