Noteworthy changes in Plasimo ============================= New in version PLASIMO-3.2.0: (compared to 3.0.x) ------------------------------------------------- * The wxParser library which underlies the dialog-based input file editing facility has been rewritten. As a result, wxWindows version 2.4.0 or later is required for Plasimo. The following user-visible changes have been made: - Clicking on the leaf check box with the LMB enables/disables a leaf. - Clicking on the leaf check box with the RMB pops up a menu for removing, cloning, enabling/disabling or adding default leafs. It also allows to reset the values to the defaults. - A (RMB) menu item restore defaults has been added. This discards the changes made in the editor window on the right, reverting to the defaults. * A utility called fixnode has been provided to facilitate upgrading older-style input files. It is located in plparser/utils. See the online code documentation of this file for details. Input files for this utility are provided as part of the stable Plasimo distributions. * The StreamFunc section has been moved into the Flow section. * The Plasimo grid has been re-implemented. In this process the following user-visible enhancements have been introduced: - coordinate names and boundaries are now written lowercase. Before, a weird mixture of z, Zmax and ThetaMin was in use. Now we have z, zmax, thetamin, x, rmin, ... All input files in CVS have been fixed, please update the ones you created locally. - Poisson grid generation has a different interface now. Please check the online documentation for Grid (Type Poisson) for details. An example of the new syntax can also be found in the file plgrid/samples/grdcreate/grdcreate.in. * The user is asked to specify four boundary functions. For each side one can specify X(Y) or Y(X), where X and Y are locations of the Cartesian projection of the grid. In addition, the locations of the corner points must be specified. * Additionally, one must specify the nature of the third coordinate, which can be either `cartesian' or `cylindrical'. Before, is was assumed that x3 was the azimuthal coordinate of a cylindrical system, an unnecessary restriction. * The documentation system has been revamped. All documentation is now based on LaTeX, the HTML help text which is visible in wxplasimo is generated with the Latex2HTML (l2h) translator. It is also possible to generate pdf or ps versions of the user manual. Documentation can be created locally by doing a `make' in /doc/manual. Because this requires a number of non-standard tools, documentation will also be made available via the Plasimo Internet site for each release. See http://plasimo.phys.tue.nl/generated_docs for details. * The `Freeze field var' dialog now allows inspection and adjustment of the under-relaxation factors of Phi variables. * Certain fields can be kept frozen. This is useful to do calculations with for example a fixed temperature field. Note that a frozen field will NOT be initialised from file at model loading time. * For flowing plasmas, in the SIMPLE(R) algorithm, the pressure correction is now calculated according to literature and does make sure mass conservation is fulfilled after every iteration. This makes higher URFs in other variables possible and can save an order of magnitude of iterations. Some adjustments to the flow (bulk) related settings are necessary: The pressure (correction) URF should be one minus the velocity one (as found in literature). Plasimo adjusts this factor dynamically, depending on the mass conservation source term; Plasimo's prediction will be scaled with your setting, such that neither 1-velURF nor your setting are exceeded. Higher URFs are needed for closed systems with constant pressure inside, lower ones for compressible flows. Note that the pressure correction equation is numerically challenging. Using a direct solver (BandMatrixLU) or a good iterative solver (e.g. BiCGstab with ILU0 preconditioning) and allowing many iterations (42) is necessary to solve it successfully. * A Mass conservation Extra Function has been added and can be used to check whether mass continuity really exists. * The Expansion Work Term v.grad p has been added to the energy (enthalpie) equation. * Time-dependent flows should yield correct results now, as the time-dependent term in the enrgy equation has been corrected and the time dependent term in the continuity equation has been implemented. The latter is linearized in order to not destroy convergence. * For states that belong to a particle and are thus not explicitly dealt with, we can assume an (atomic) state distribution function. It can be used to correctly calculate the heat capacity (which also has been fixed to include the energy that's in ionization ...) or for the calculation of radiation by state transitions. * Anisotropic diffusion is now in possible in principle. This is somewhat experimental though. As a consequence one must now specify the type of diffusion (Isotropic or anisotropic) in the inputfile in the mixture section for non-LTE plasma's. To select isotropic diffusion type the line 'Isotropic yes' in the mixture section in the input file or click on enable 'Isotropic ' in the mixture section in the GUI. To use anistropic diffusion use a calculator that yields anisotropic diffusion coefficients and enter the line 'Isotropic no' in the input file (or disable Isotropic diffusion in the GUI). New in version PLASIMO-3.0.0: (compared to 2.8.x) ------------------------------------------------- * New GUI. Allows the dynamical loading of viewer plugins: [no recompile required if switching to/from OpenGL plots] * Data viewers can be embedded in the application's main frame. * Convergence behaviour can be plotted as a function of the iteration number. * The OpenGL configuration [glconf.in] should now be a section OpenGLConfig in the runtime configuration file [runtimecnf.in]. If you use a private copy [localcnf.in, say], make sure to add the following line to it (without the quotes): 'Include glconf.in OpenGLConfig' * Settings can be modified via a tab window. Note that some of these take effect only after 'save settings' and a program restart. * Radial Lorentz force (resulting from axial current) implemented as bulk force. * GUI update and plot update frequency default to the value specified in the file runtimecnf.in (or your local copy, see above) by the item 'DefaultUpdateCycle' * Various improvements on the OpenGL plots. (UpdateCycle can be set per log timestep in order to produce MPEGs, rounding of min/max in autoscale mode, better wireFrame view, Enhanced colour rendering) * The convergence behaviour is now written to the file /convergence. Only the over-all residue is shown as a function of the iteration number (Plasimo models only). One line is written every iter_log iterations (you find this number in the section MainIterConfig of the model file.) * The diffusion calculation in PLASIMO can be enhanced by taking Knudsen flows (effusion) into account. While the treatment is approximate, it is still a significant improvement, as it prevents unphysically large diffusion from occuring. * Fixes for time discretization for time-dep models. * More comfortable stretch function specification: You can just specify a point and specify the grid line density there now. This incurs a change in your input file: You need to give your StretchX and StretchY nodes a Type now. The old stretch specification corresponds to Type User_Stretch. You may use the script util/StretchType.sed to convert your input files. At most places, you'll probably have just uniform (no) stretching and you should better just replace the node by one of Type NoStretch. The utils/StretchType2.sed script does this conversion for you. When using stretch functions, be careful. Not all PLASIMO code has been checked to be correct for stretched grids. Some expressions used may only be first order accurate (instead of second order) and some modules (e.g. POF) are known not to be correct with stretched grids at all. * Previous versions failed to take the heat capacity into account on NonLTE plasmas. This has changed now, time-dependent and flowing nonLTE models should give better results now. You need to add Sections SpecificHeatHP and El to your Transport Sections and add the StdSpecificHeatHP resp. El Calculators there. You may use the util/AddSpecHeatNonLTE.sed script to do it. Models in CVS have been adapted of course. * Adding heat capacity exposed another problem: The convective terms were not calculated at west and south boundaries. Fixed. * Interpolation on grid resize (wxplasimo only) has been improved, especially for stretched grids. * Automatic grid resize (a reduced kind of multigrid) is optionally possible. Set coarse_grid 1 in MainIterConfig to enable. * When using POISSON grid generation, solvers different from MSIPSolver are possible now. * Less permissive input file parser. The parser will complain about missing items which are required according to the dialog description (*.tin) files, or items which are present while the .tin does not know about them. * Changed (incompatible) input file syntax 1) Sections `Flow' of type `Fixed' now require Sections VelocityFunc1, VelocityFunc2, VelocityFunc3 and PressureFunc, rather than the old Velocity1, Velocity2, Velocity3 and Pressure. These sections should (only) contain a subsection Function, specifying the (fixed) values of these flow quantities. * The `Soft Install' functionality has been reworked. It is now possible to add a section `InitViews' to the model file's root section, here you can specify what views need to be created after a model has been installed. See the help text in Plasimo for a detailed explanation. * A new density calculation algorithm has been provided for non-LTE mixtures. It calculates the density on the basis of the assumption of local chemical equilibrium. See input/tin/locchemdens.htm for details. * Alternatively to using the SIMPLE algorithm for flowing plasmas, you can choose bulk flow type SIMPLER now. It needs considerably less iterations, though the iterations are a bit slower. You can use high URFs (vel 0.98, press corr 0.90) if you use good solvers (BiCGstab with ILU0Preconditioner, e.g.) and allow enough iterations (e.g. 20) in the solver, especially for the pressure corrections. * The Mach number can be calculated (configured as extra function in the flow section). * Fixed the handling of Annotation information. Annotations can now be multi-line text strings and may contain the characters \, " and the like. New in version PLASIMO-2.8.x: (compared to 2.6.x) ------------------------------------------------- * Plots default to being updated every 5 iterations only (in order to avoid slowing down the calculation too much). For Unix-like systems, also the GUI (iteration count display ...) gets updated only once a second for the same reason. * The Reset button has been removed from the calculation window. Use the menu item 'Soft Install' instead (which has the same effect). * Removal of old 'SelfConsistent' diffusion model * Plasimo now works (again) with densities instead of mass-fractions. So if you use a Range in the Mixture section, you are now specifying a limit on the densities, not on the mass-fractions! * Enhancements to the non-linear LTE density solver. Now uses analytical expressions to calculate the system of equations' Jacobian. * Added elemental diffusion in LTE mixtures. The code is functional, but more sophisticated boundary conditions are probably needed. * (Microwave) EM plugin with skin depth for spherical plasmas (this plugin is easily modified for use with other grids). Used by the now fully functional s2iter.gum sulphur model. * Fixed the inductive EM field calculation for systems in which ferrites are present (like the Philips QL lamp). * Various plugins with expressions for Collision Integrals added. New in version PLASIMO-2.6.x: (compared to 2.4.x) ------------------------------------------------- * 3D OpenGL plot widgets (eye candy) Configure --with-opengl to get them. * Fixed compilation with gcc versions >= 3.0.0. NOTE that the GUI (wxPlasimo) is still unusable when using this compiler, because wxWindows triggers an operator overloading bug in these compiler versions. The console app should work fine. * Working self-consistent diffusion model, called 'SelfConsistentFriction'. * Fixed LTE composition specification (GUI). * Microwave incoupling module. * Parallelization of radiation transport using MPI (LAM). configure --with-mpi to get MPI support. Have a look at the input/unsorted/s2mpi input file and the schema_*mpi MPI schemes. Advanced features (load balancing ...) not yet implemented. Input file incompatibilities: * In LTE Models entry LUTable in the section Composition is now called Type. Internally: * Added const versions of the plNode members. * Added new iterators types (const_iterator, leaf_iterator, const_leaf_iterator to facilitate traversing plNode children). Also custom iterators are now supported. See the sample in plparser/samples/iterators/ for details. * Bug fixes and clean ups New in version PLASIMO-2.4.x: (compared to 2.2.x) ------------------------------------------------- * Make solvers configurable and add LU decomposition and three Iterative (Krylov) solvers including Preconditioners. Input files may need to be converted to new syntax that allows solver specification. Use the conversion script util/SolverType.sed * Add power law velocity profile boundary condition for a fixed mass flow (may be given in sccs * amu) * Improved URF adjustment (urf_factor), by keeping a history of the resi- duals ("low-pass filter"). URF changes are logged with loglevel 1 now. * PLASIMO comes up with a console window to write the log into instead of a Log subwindow under Windows. wxplasimo --log should yield the old behaviour. * Automatically update all plots after last iteration. * Bugfixes, better error messages (input parsing), code cleanup and correctness testing. The Plasimo team http://plasimo.phys.tue.nl/