//设置三维PML层电导率和导磁系数
for (i = 1; i < npml; i++) //后边
{
for (j = 0; j <= JE; j++)
{
for (k = 0; k <= KE; k++)
{
sigmax[i][j][k] = (npml*sigma_MAX / (n_change + 1))
* (pow((npml - i + 0.5) / npml, (n_change + 1))
- pow((npml - i - 0.5) / npml, (n_change + 1)));
}
}
}
for (i = IE - npml + 1; i < IE; i++) //前边
{
for (j = 0; j <= JE; j++)
{
for (k = 0; k <= KE; k++)
{
sigmax[i][j][k] = (npml*sigma_MAX / (n_change + 1))
* (pow((i - (IE - npml) + 0.5) / npml, (n_change + 1))
- pow((i - (IE - npml) - 0.5) / npml, (n_change + 1)));
}
}
}
for (i = 0; i < npml; i++) //后边
{
for (j = 0; j <= JE; j++)
{
for (k = 0; k <= KE; k++)
{
sigmamx[i][j][k] = mur0*(npml*sigma_MAX / (n_change + 1))
* (pow((((npml - i - 0.5) + 0.5) / npml), (n_change + 1))
- pow((((npml - i - 0.5) - 0.5) / npml), (n_change + 1)))
/ epsilon;
}
}
}
for (i = IE - npml; i < IE; i++) //前边
{
for (j = 0; j <= JE; j++)
{
for (k = 0; k <= KE; k++)
{
sigmamx[i][j][k] = mur0*(npml*sigma_MAX / (n_change + 1))
* (pow((i - (IE - npml) + 0.5 + 0.5) / npml, (n_change + 1))
- pow((i - (IE - npml) + 0.5 - 0.5) / npml, (n_change + 1)))
/ epsilon;
}
}
}
for (i = 0; i <= IE; i++) //左边
{
for (j = 1; j < npml; j++)
{
for (k = 0; k <= KE; k++)
{
sigmay[i][j][k] = (npml*sigma_MAX / (n_change + 1))
* (pow((npml - j + 0.5) / npml, (n_change + 1))
- pow((npml - j - 0.5) / npml, (n_change + 1)));
}
}
}
for (i = 0; i <= IE; i++) //右边
{
for (j = JE - npml + 1; j < JE; j++)
{
for (k = 0; k <= KE; k++)
{
sigmay[i][j][k] = (npml*sigma_MAX / (n_change + 1))
* (pow((j - (JE - npml) + 0.5) / npml, (n_change + 1))
- pow((j - (JE - npml) - 0.5) / npml, (n_change + 1)));
}
}
}
for (i = 0; i <= IE; i++) //左边
{
for (j = 0; j < npml; j++)
{
for (k = 0; k <= KE; k++)
{
sigmamy[i][j][k] = mur0*(npml*sigma_MAX / (n_change + 1))
* (pow((((npml - j - 0.5) + 0.5) / npml), (n_change + 1))
- pow((((npml - j - 0.5) - 0.5) / npml), (n_change + 1)))
/ epsilon;
}
}
}
for (i = 0; i <= IE; i++) //右边
{
for (j = JE - npml; j < JE; j++)
{
for (k = 0; k <= KE; k++)
{
sigmamy[i][j][k] = mur0*(npml*sigma_MAX / (n_change + 1))
* (pow((j - (JE - npml) + 0.5 + 0.5) / npml, (n_change + 1))
- pow((j - (JE - npml) + 0.5 - 0.5) / npml, (n_change + 1)))
/ epsilon;
}
}
}
for (i = 0; i <= IE; i++)
{
for (j = 0; j <= JE; j++)
{
for (k = 1; k < npml; k++)
{
sigmaz[i][j][k] = (npml*sigma_MAX / (n_change + 1))
* (pow((npml - k + 0.5) / npml, (n_change + 1))
- pow((npml - k - 0.5) / npml, (n_change + 1)));
}
}
}
for (i = 0; i <= IE; i++)
{
for (j = 0; j <= JE; j++)
{
for (k = KE - npml + 1; k < KE; k++)
{
sigmaz[i][j][k] = (npml*sigma_MAX / (n_change + 1))
* (pow((k - (KE - npml) + 0.5) / npml, (n_change + 1))
- pow((k - (KE - npml) - 0.5) / npml, (n_change + 1)));
}
}
}
for (i = 0; i <= IE; i++)
{
for (j = 0; j <= JE; j++)
{
for (k = 0; k < npml; k++)
{
sigmamz[i][j][k] = mur0*(npml*sigma_MAX / (n_change + 1))
* (pow((((npml - k - 0.5) + 0.5) / npml), (n_change + 1))
- pow((((npml - k - 0.5) - 0.5) / npml), (n_change + 1)))
/ epsilon;
}
}
}
for (i = 0; i <= IE; i++)
{
for (j = 0; j <= JE; j++)
{
for (k = KE - npml; k < KE; k++)
{
sigmamz[i][j][k] = mur0*(npml*sigma_MAX / (n_change + 1))
* (pow((k - (KE - npml) + 0.5 + 0.5) / npml, (n_change + 1))
- pow((k - (KE - npml) + 0.5 - 0.5) / npml, (n_change + 1)))
/ epsilon;
}
}
}
FDTD的PML设置
最新推荐文章于 2024-04-16 21:55:06 发布