12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- 2D FDTD simulator
- Copyright (C) 2019 Emilia Blåsten
- This program is free software: you can redistribute it and/or
- modify it under the terms of the GNU Affero General Public License
- as published by the Free Software Foundation, either version 3 of
- the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Affero General Public License for more details.
- You should have received a copy of the GNU Affero General Public
- License along with this program. If not, see
- <http://www.gnu.org/licenses/>.
- */
- /* abctmz.h: Header file that defines the ABC structure and contains the
- * related prototype functions. It contains the coefficient for updating
- * the second order ABC boundary condition. It also contains pointers to
- * four arrays containing the boundary data on the left, right, top and
- * bottom. */
- #ifndef _ABCTMZ_H
- #define _ABCTMZ_H
- #include "gridtmz.h"
- struct Abc {
- double coef0, coef1, coef2;
- double ***ezLeft;
- double **ezLeftTfixed;
- double *ezLeftTOfixed;
- double ***ezRight;
- double **ezRightTfixed;
- double *ezRightTOfixed;
- double ***ezTop;
- double **ezTopTfixed;
- double *ezTopTOfixed;
- double ***ezBottom;
- double **ezBottomTfixed;
- double *ezBottomTOfixed;
- };
- typedef struct Abc Abc;
- Abc *abcCreate(int sizeX, int sizeY);
- void abcInit(Abc *ab, Grid *g);
- void abcDestroy(Abc *ab);
- void abc(Abc *ab, Grid *g);
- #endif
|