Commit Graph

498 Commits (55068629b01831b85406f54e68612ab2169f4aeb)

Author SHA1 Message Date
Thorsten Liebig 1f32d4f7c6 conducting sheet model: fixes concerning cylindrical mesh 2012-06-06 10:31:21 +02:00
Thorsten Liebig d7d5802ba9 fixed unnecessary memory allocation for lorentz material extension 2012-06-06 10:30:47 +02:00
Thorsten Liebig a29ba68729 lorentz material model now supports cylindrical coordinates 2012-06-06 10:29:57 +02:00
Thorsten Liebig 11fed5f506 cylinder engine extension changed handling and priority 2012-06-06 10:28:06 +02:00
Thorsten Liebig 0cf527d74c introduced new (dummy) cylinder engine
This is mainly for completeness, this engine doesn't (yet) have any functionality
2012-06-06 10:25:40 +02:00
Thorsten Liebig 08328e62b0 updates to GetYeeCoords
the cylindrical multigrid will return false in case of a sub-grid mesh position
2012-06-06 10:19:30 +02:00
Thorsten Liebig 8d10970c3c operator extension saves information about cylindrical mesh special case r==0 2012-06-06 10:16:55 +02:00
Thorsten Liebig 993466fd69 fixed typo 2012-06-06 10:13:04 +02:00
Thorsten Liebig 03ea877bf7 allow conducting sheet for cylindrical multigrids 2012-05-11 10:49:55 +02:00
Thorsten Liebig 9b0186502b disable pml in alpha-direction for cylindrical multigrid scheme
todo: pml should be enabled for all sub-grids

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2012-05-11 10:49:22 +02:00
Thorsten Liebig c809cc65cd cleanup in operator extensions GetExtensionName() 2012-05-11 10:47:45 +02:00
Thorsten Liebig c4db77dd18 fix: Operator Extension base class returns NULL on Clone() by default 2012-05-11 10:45:44 +02:00
Thorsten Liebig ac8ecb64c8 fixes and fallback in conducting sheet model
Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2012-05-10 11:04:44 +02:00
Thorsten Liebig 317ef82993 new FDTD extension: conducting sheet model 2012-05-08 13:58:20 +02:00
Thorsten Liebig 3abe10848d dispersive material: critical bug fixes 2012-04-27 16:47:27 +02:00
Thorsten Liebig f62da05c12 rewritten SAR calculation 2012-04-27 16:37:42 +02:00
Thorsten Liebig c2abe89440 Drude material: added support for multi-pole drude 2012-04-27 16:37:42 +02:00
Thorsten Liebig 796fd83f7b dispersive material extension: prepared for higher order dispersion 2012-04-27 16:37:42 +02:00
Thorsten Liebig fb5b330d25 drude type material: losses added 2012-04-27 16:37:42 +02:00
Thorsten Liebig fedb8a91f2 UPML: allow pml in +/- alpha direction in a cylindrical FDTD mesh
This needs a lot of stability testing and verification!

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2012-02-21 12:40:36 +01:00
Thorsten Liebig 314f4ad427 cylindrical operator fix: check for metal on z-axis 2012-02-10 11:57:28 +01:00
Thorsten Liebig c1baf35688 allow pml in r-min direction for partial cylindrical mesh
Todo: some work needs to be done to allow umpl in alpha-direction

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2012-02-10 11:56:37 +01:00
Thorsten Liebig ed592bb2ba allow Mur-ABC to cylindrical mesh in all directions for a partial mesh 2012-02-10 11:56:34 +01:00
Thorsten Liebig ecf8ad6bdd supply more information to extensions about the cylindrical mesh 2012-02-10 11:55:55 +01:00
Thorsten Liebig 807786b2d2 reorganized vtk writer and new hdf5 file writer & reader 2012-02-02 10:20:49 +01:00
Thorsten Liebig 2cbdf2d2b2 timestep length warning only for gaussian pulse excitation type 2012-01-17 11:31:53 +01:00
Thorsten Liebig 488772de25 removed misleading timestep progress information, warning about to few timesteps instead
Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2012-01-17 10:22:16 +01:00
Thorsten Liebig 489a45a666 fix missing initializations in CalcTimestep_Var1/3() 2011-11-16 12:50:22 +01:00
Thorsten Liebig db50e36c2f Cylindrical FDTD: use advanced timestep for non-singular mesh (r>0) 2011-11-16 12:46:49 +01:00
Thorsten Liebig a748b6416f bug fix handling field dumps for cylindrical coordinates & closed alpha mesh 2011-11-16 11:31:50 +01:00
Thorsten Liebig 3660da8a8d critical bug fix in handling lumped elements
bug: if one lumped element inside a property failed, all following elements were skipped
2011-11-16 11:30:21 +01:00
Thorsten Liebig d6f43512d8 show smallest timestep and its mesh position on debug level >=2 2011-11-16 11:26:10 +01:00
Thorsten Liebig a82e392338 new debug level 3, update to debug level 2011-11-16 11:24:25 +01:00
Thorsten Liebig 830f7494c8 console output cleanup: use verbose level ('-v') for old verbose style 2011-11-08 11:49:14 +01:00
Thorsten Liebig c9357823ff fix in openEMS MPI setup 2011-11-08 10:15:36 +01:00
Thorsten Liebig b34848f323 new engine interface using sse & speed enhancement in energy estimate
Note: cylindrical engine interface now based on sse engine interface
--> similar to sse engine & cylindrical engine
2011-11-07 12:07:55 +01:00
Thorsten Liebig c4b7ecb88e critical fix in GetYeeCoords
this was affecting the correct snapping/weighting of current excitations
2011-09-13 10:51:11 +02:00
Thorsten Liebig 6b9320490a fix in lumped elements snapping 2011-08-16 17:04:16 +02:00
Thorsten Liebig eb74757789 openEMS using CSX mesh type definition 2011-08-16 17:03:57 +02:00
Thorsten Liebig 01bdb9e03e find and delete an existing operator extension 2011-07-25 14:57:09 +02:00
Thorsten Liebig 0fe63823d0 bug fix in operator resetting and (Re)InitExcitation 2011-07-25 14:56:27 +02:00
Thorsten Liebig 2e8e8caa4e Operator: new SnapBox2Mesh + used by CalcLumpedElement 2011-07-22 09:58:02 +02:00
Thorsten Liebig c7d24d08f1 fix: dump operator debug files in native format only 2011-07-14 13:42:33 +02:00
Thorsten Liebig 8237d39ece bug fixes in Calc_LumpedElements 2011-07-13 09:32:44 +02:00
Thorsten Liebig ca8c5eeee4 upml: critical bug in upml grading function
wrong upml grading function has made the pml unstable or fail for small mesh delta units
2011-06-08 10:29:00 +02:00
Thorsten Liebig 28dc323e8a revised Operator::SnapToMesh & fix in cylindrical H-Field interpolation 2011-04-27 13:01:02 +02:00
Thorsten Liebig 7d30ce2fb6 removed old legacy vtk file writing 2011-04-13 16:22:06 +02:00
Thorsten Liebig 01e8a8011a fixed argument parsing & always redirect MPI output 2011-04-13 16:21:59 +02:00
Thorsten Liebig 1a06418914 new engine interface for cylindrical fdtd, handling the closed cylinder 2011-04-13 12:16:54 +02:00
Thorsten Liebig 91ba3a6f6f MPI: lib info update & compilation fix 2011-04-08 12:26:32 +02:00
Thorsten Liebig 7b34a8706a new lumped elements using new CSPropLumpedElement CSXCAD-class 2011-04-08 09:59:48 +02:00
Thorsten Liebig 62acf5f1b3 ProcessFields now using new VTK_File_IO class for vtk dumps
Todo:
- HDF5_File_IO
- replace all old vtk dump method usage and remove them
2011-04-01 15:29:56 +02:00
Thorsten Liebig 77cae6185e MPI: added closed cylinder operator support 2011-03-28 10:38:48 +02:00
Thorsten Liebig 06eb82832e MPI: operator saves process table 2011-03-28 10:26:08 +02:00
Thorsten Liebig 9f40c20d43 regression fix in cylinder extension 2011-03-21 15:48:20 +01:00
Thorsten Liebig 46230f63c7 MPI: check if multigrid and MPI setup is compatible 2011-03-21 15:09:33 +01:00
Thorsten Liebig 1dff63d2cd cylinder engine extension should use inline functions for field accesss 2011-03-18 14:46:27 +01:00
Thorsten Liebig 7ac5ab67c8 Operator & Operator_Cylinder: changes to material averaging methods
Operator:
- new method to setup the mesh: SetupCSXGrid()
- Most methods handling material and operator calculations are now protected.
- New method for accessing the material distribution.

Operator_Cylinder:
- overloaded SetupCSXGrid() handling cylindrical specialties
- This commit adds an additional line in alpha-direction
in case of a closed cylinder simulation. Thereby the material averaging
will be accurate at the alpha-interface

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2011-03-18 14:17:09 +01:00
Thorsten Liebig be7e543232 fix in Excitation length comparison 2011-03-18 10:06:28 +01:00
Thorsten Liebig caacbb9d9d critical fixes in excitation extension 2011-03-17 11:38:01 +01:00
Thorsten Liebig 14b0dd5104 ext: fix in mur-ABC extension 2011-03-17 10:29:48 +01:00
Thorsten Liebig aba33c58bd excitation moved to its own extension
the benefit of this approach is, that the excitation
is subject to the extensions priorities
2011-03-16 16:26:01 +01:00
Thorsten Liebig 43e1f43c42 new operator method: GetYeeCoords & usage to calc excitations and metal 2011-03-16 12:26:41 +01:00
Thorsten Liebig 3742478ca9 sorting engine methods and some docu updates 2011-03-16 12:16:09 +01:00
Thorsten Liebig 005eb3a4f6 MPI: added an additional line at the upper MPI-bound for correct material averaging
This also fixes the current send and receive issue
--> Engine_MPI::SendReceiveCurrents()
2011-03-15 09:41:29 +01:00
Thorsten Liebig edb40489d7 MPI: tell MPI-operator about global mesh and its position in it 2011-03-14 16:20:33 +01:00
Thorsten Liebig 8e2fce0e8c reduce AdrOp usage 2011-03-14 15:58:38 +01:00
Thorsten Liebig 92d60b3204 fix in cylindrical multigrids: check for valid number of subgrids 2011-03-14 10:37:12 +01:00
Thorsten Liebig f630abf813 MPI: external libs info reflects MPI usage 2011-03-10 10:39:08 +01:00
Thorsten Liebig 3cbadd5c82 MPI: DumpExciationsSignals for rank 0 only 2011-03-10 10:39:08 +01:00
Thorsten Liebig 9c061e9d84 MPI: redirect output for ranks>0 to file
changes to main.cpp:
read global command line arguments first to allow for immediate output redirection

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2011-03-10 10:39:08 +01:00
Thorsten Liebig 75fb5a0cc9 MPI: fix in handling SplitN_? equal 1 or smaller 2011-03-10 10:39:08 +01:00
Thorsten Liebig 28c5b496ed MPI: fix in enabling MPI Operator 2011-03-10 10:39:08 +01:00
Thorsten Liebig 8d09a7ee28 MPI: allow requested number of splits 2011-03-10 10:39:08 +01:00
Thorsten Liebig eb7524b6f6 MPI: Setup MPI now allows split in all directions with defitions read from xml-file
Warning: depends on API changes in CSXCAD!
2011-03-10 10:39:08 +01:00
Thorsten Liebig 20d6547235 MPI: added cylindrical multigrid support
The cylindrical multigrid scheme needed a workaround:
An additional barrier is necessary to prevent a simultaneous MPI comm access.

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2011-03-10 10:39:08 +01:00
Thorsten Liebig 14e12f9138 MPI: new methode to define neighbors 2011-03-10 10:39:08 +01:00
Thorsten Liebig 729a92c5e1 MPI: move mpi mesh split to openEMS_FDTD_MPI 2011-03-10 10:39:08 +01:00
Thorsten Liebig bfcd85e3e6 MPI: fix: buffer init can handle all interface directions 2011-03-10 10:39:08 +01:00
Thorsten Liebig 211b6b7331 MPI: debug dumps prepend its rank to output filenames 2011-03-10 10:39:07 +01:00
Thorsten Liebig 9b55eab2f8 MPI: ciritcal fix: the interface area needs to be updated in both ranks 2011-03-10 10:39:07 +01:00
Thorsten Liebig 23df0f63a0 MPI: critital fix in current update/transfer
The normal current component at the upper boundaries are not updated
by the conventional engine as is needed for the interface interaction.

Workaround: transfer all three current components --> larger data transfer
Todo: needs to be properly fixed in the future!

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2011-03-10 10:39:07 +01:00
Thorsten Liebig 9d51971c26 MPI: fix for cylindrical coordinate engine + MPI 2011-03-10 10:39:07 +01:00
Thorsten Liebig 8d2d645a26 MPI: insert MPI engine into main engines inheritance scheme
new inheritance scheme:
[..] -> SSE_Compressed -> MPI -> Multithreading -> [..]
2011-03-10 10:39:07 +01:00
Thorsten Liebig b395546483 MPI: some fixes in handling the MPI engine 2011-03-10 10:39:07 +01:00
Thorsten Liebig 3b402e976b MPI: disable/rename processings if they are in conflict 2011-03-10 10:39:07 +01:00
Thorsten Liebig 27a4b9f482 MPI: synchronize time step + new MPI_Enabled flag 2011-03-10 10:39:07 +01:00
Thorsten Liebig e2628740fc new openEMS_FDTD_MPI for better MPI handling 2011-03-10 10:39:07 +01:00
Thorsten Liebig 9364ecd292 first working MPI implementation
todo:
 - only/mainly rank 0 takes care of output
 - rank 0 manages end-criteria, energy calculation
 - field dumps split between ranks --> prevent file corruption
 - a lot more...

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2011-03-10 10:39:07 +01:00
Thorsten Liebig 895e6c635d initial MPI support 2011-03-10 10:39:07 +01:00
Thorsten Liebig b73004be48 new method to dump excitation signals 2011-03-10 10:34:40 +01:00
Thorsten Liebig 7df39bafcb fix: missing operator construction 2011-02-08 11:42:59 +01:00
Thorsten Liebig 02f929aa53 fix: allow missing exciation... 2011-02-08 10:35:23 +01:00
Thorsten Liebig 2e2f75807e Operator-Base: access stored discrete material 2011-01-31 12:22:21 +01:00
Thorsten Liebig 24bac9499f allocate dynamic CSX and allow access from basic operator 2011-01-31 12:00:00 +01:00
Thorsten Liebig 10537d75ab fill missing material storage in cylindrical multigrids 2011-01-25 10:27:51 +01:00
Thorsten Liebig 67d1307fdf fixed the operator resetting & cleanup + a lot of memory leaks fixed 2011-01-24 11:11:45 +01:00
Thorsten Liebig c0c66518c1 new dump type: total current density (rotH) field dump 2011-01-10 11:15:22 +01:00
Thorsten Liebig c5a689b67c fixed GetRawField handling 2011-01-10 11:14:23 +01:00
Thorsten Liebig 24a2e3007a FDTD Engine Interface: update to GetRawField 2011-01-07 16:29:08 +01:00
Thorsten Liebig 2c3ebe5a7d new dump type: electric current density (J = kappa * E) 2011-01-07 16:12:07 +01:00
Thorsten Liebig ea496b6129 operator: new material data storage for post-processing purposes 2011-01-07 10:55:31 +01:00
Thorsten Liebig 3104335dce replaced GetMeshDelta by GetEdgeLength & partially removed AdrOp 2010-12-08 16:55:27 +01:00
Thorsten Liebig 043ec7c1a1 processing constructor with Engine_Interface_Base only
Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-12-07 16:47:23 +01:00
Thorsten Liebig 57ead21ccc real abstract base classes for common operator and engine-interface 2010-12-07 14:47:22 +01:00
Thorsten Liebig 9d3761b1d0 Init style: applied astyle.sh
astyle --style=allman --indent=tab --indent-cases {} \;

please apply this style prior to any future commit

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-12-06 15:31:11 +01:00
Thorsten Liebig 70ae86d63f moved all FDTD extensions to folder FDTD/extensions
Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-12-06 15:30:47 +01:00
Thorsten Liebig 2f531b99c6 moved all processing classes to Common/
Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-12-06 10:44:25 +01:00
Thorsten Liebig 16263e8f9a new Operator_Base class
- This class is meant as an abstract base for any time-domain and rect-grid numerical solver.
- All processing methods should only use this base class

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-12-06 10:00:08 +01:00
Thorsten Liebig 32cbdc5d0b removed FDTD engine from (nearly) all processing classes
todo:
 - remove FTDT operator from all processingX and replace by abstract-base-operator?
 - remove FDTD engine from ProcessCurrent
 - remove or cleanup ProcessEField + ProcessHField

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-12-06 10:00:08 +01:00
Thorsten Liebig ab1119f468 new: Engine_Interface
This is a new common class designed as an interface between an engine
and the processing routines which should become a part of common as well.

todo:
 - migrate all processings to use this interface only
 - lots of testing...

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-12-06 10:00:08 +01:00
Thorsten Liebig 2d12db5ea6 Merge remote branch 'seb/master' 2010-11-04 12:20:23 +01:00
Thorsten Liebig ce56184681 multi-threading support for MUR-ABC added 2010-11-04 12:13:43 +01:00
Sebastian Held 5900e2726c more logical boundary handling 2010-11-04 07:48:15 +01:00
Sebastian Held 6728cee054 minor bugfix: missing initialization 2010-10-28 21:50:50 +02:00
Thorsten Liebig 907ac3cff2 default debug flag and update/fix for cylindrical coords 2010-10-27 14:49:16 +02:00
Sebastian Held d31b3ffbb2 updated debug dumps
The debug dump routines do not work correctly in cylinder coords (--nativeFieldDumps may help)!
2010-10-27 11:17:58 +02:00
Thorsten Liebig 4f8aa3faa8 fix in Operator_SSE_Compressed: cleanup old compression prior to an InitOperator() 2010-10-26 18:47:21 +02:00
Thorsten Liebig f204bc2723 Mode matching probe: fixed an error in HField interpolation
Now also excluding the boundaries from the MM.
Updated waveguide example: Rect_Waveguide.m

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-10-26 08:30:35 +02:00
Thorsten Liebig 1586c76af6 Merge remote branch 'seb/master' 2010-10-20 10:48:18 +02:00
Sebastian Held dcc9f86c8a --debug-PEC improvements 2010-10-20 09:25:50 +02:00
Sebastian Held 4e91cb95dc bugfix: --debug-PEC now works with all engines; operator now uses Get... and Set... functions 2010-10-20 07:26:16 +02:00
Thorsten Liebig 7dec28731c changed CSXCAD API handling used primitives 2010-10-19 16:54:35 +02:00
Thorsten Liebig b6362495d8 operator: fix in PEC curves
Operator::FindPath method is not optimal yet,
will find weird pathes in some occasions,
at least they will be closed now... hopefully :)

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-10-12 12:49:44 +02:00
Sebastian Held 16e0e2f3f2 bugfix: correct scaling of --debug-boxes 2010-10-11 21:05:02 +02:00
Thorsten Liebig c1250ce34d upml ext: save memory and speedup
Instead of using an additional voltage/current array mirroring the main volt/curr,
the upml extension now swaps volt with volt_flux and curr with curr_flux
before and after the main engine updates.
This saves memory and therefore also increases the upml speed.
2010-10-07 19:25:22 +02:00
Sebastian Held 5cc6438ab7 engine_sse_compressed: speed up 2010-10-07 14:39:54 +02:00
Thorsten Liebig 672f2a436a upml extension: operator get functions and disabled pml in non-pml regions 2010-10-06 15:07:17 +02:00
Thorsten Liebig 043ef6ec4c extensions: multithreading support added
every extension can either implement the single threaded methods e.g. DoPreVoltageUpdates()
or the multithreading aquivalent method e.g. DoPreVoltageUpdates(int threadID)

Engine_Ext_UPML class is an example for a multithreading extensions
2010-10-06 10:30:55 +02:00
Thorsten Liebig 1b2ac008e7 fix in upml operator 2010-10-06 10:04:19 +02:00
Thorsten Liebig 430a04e9e4 new/better method to assign jobs to working threads 2010-10-05 17:24:36 +02:00
Thorsten Liebig ae281d3dea upml extension: use inline engine access methods
todo: further speed optimization for this extension...

Signed-off-by: Thorsten Liebig <Thorsten.Liebig@gmx.de>
2010-10-05 11:51:12 +02:00
Thorsten Liebig 6c00a844d2 upml extension: added support for cylindrical multigrid meshes 2010-10-05 11:51:12 +02:00
Thorsten Liebig 66c79aabe6 mur-abc extension copy-constructor should be protected 2010-10-05 11:51:12 +02:00
Thorsten Liebig 684e864a75 upml extension: added support for cylindrical meshs 2010-10-05 11:51:12 +02:00
Thorsten Liebig cc50b5bbef ShowStat method added to upml extension 2010-10-05 11:51:12 +02:00
Thorsten Liebig 06bbec106f new extension: upml
Operator extension implementing an uniaxial perfectly matched layer (upml)

This new pml implementation is going to replace the old split-field pml
2010-10-05 11:51:12 +02:00
Thorsten Liebig 887e07a394 define vtk dump data type
Using double as vtk data type will fix some errors/warnings in Paraview about a datasize mismatch.
2010-10-05 11:51:12 +02:00
Thorsten Liebig 007e8c72f3 doc: comments on extensions priority executing order 2010-10-03 20:15:20 +02:00
Thorsten Liebig 5e244bf7cb fixed crashing "--debug-operator" option with sse-compressed engines 2010-10-03 20:15:20 +02:00
Thorsten Liebig f6663eeccb multithreading engine: removed separate excitation thread
the excitation is now handled by the first (ID=0) "conventional" thread
2010-10-02 18:06:38 +02:00
Thorsten Liebig 1c24877bf4 operator extensions, fixed missing deconstructor 2010-10-02 17:55:19 +02:00
Thorsten Liebig fb3ccd36bf engine: update handling extensions & multithreading priority handling fixed 2010-10-02 17:54:34 +02:00
Thorsten Liebig af922a10bc new extension priority system 2010-09-25 19:23:53 +02:00
Thorsten Liebig 832792eb8e fixed multigrid interpolation, added closed_cylinder support 2010-09-24 12:01:38 +02:00
Thorsten Liebig 8870a20787 fixed extensions handling for cylindrical multigrid 2010-09-22 16:08:39 +02:00
Thorsten Liebig 8c95f21858 extensions check for CylindircalMultiGrid & allow Mur-ABC in radial direction 2010-09-22 09:58:45 +02:00
Thorsten Liebig 060b93d089 operator: removed redundant methods using integer positions 2010-09-17 15:34:39 +02:00
Thorsten Liebig 1e78e5c2d6 fix vtk-dump: vector fields consider mesh type
furthermore:
- new argument: --nativeFieldDumps to dump original FDTD field components for debugging purposes
- show global arguments on startup
2010-09-17 15:34:39 +02:00
Thorsten Liebig 482de93d3d fix in operator_sse_compression gcc compatibility check 2010-09-17 15:34:39 +02:00