Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ReleaseNotes/release_8.0.txt
3194 views
1
Elmer Release Notes for version 8.0
2
===================================
3
4
Previous release: 7.0
5
Period covered: 1 June 2012 - 28 April 2015
6
7
8
Here is a list of the most relevant new features of Elmer between since the last official version 7.0 published
9
on 31 May 2012.
10
11
There has been many drastic changes in recent times in Elmer project. Elmer had been trasferred from gnu autotools
12
to cmake, and from using svn into git. However, here we only list the most important new features related to code
13
functionality. The internal changes required in the cmake transition, package generaration and multithreading
14
have been equally significant but they are mainly omitted here.
15
16
Additionally the features related to Elmer/ICE branch of Elmer are not covered in by these release notes.
17
The Elmer/ICE related information is well covered in its dedicated site.
18
19
20
21
ElmerSolver
22
===========
23
24
New Finite elements
25
-------------------
26
- New edge element basis functions for H(curl):
27
o 6-DOF triangle
28
o 6-DOF quadrilateral
29
o 12-DOF tetrahedron
30
o 10-DOF pyramid
31
o 8-DOF pyramid (use only for affine elements)
32
o 15-DOF prism
33
o 27-DOF hexahedron
34
- New face element basis functions for H(div):
35
o 6-DOF triangle (BDM)
36
o 6-DOF quadrilateral (ABF)
37
o 12-DOF tetrahedron (BDM)
38
- Several new test cases relating to new edge and face elements added
39
- The documentation of face and edge elements created (Appendix F of ElmerSolver manual)
40
41
42
Linear system solvers
43
---------------------
44
- FETI, Finite element tearing and interconnect
45
o A domain decomposition method for solving large elliptic problems in parallel
46
o MUMPS serial and QR of Cholmod may be used for nullspace detection of the local problems,
47
o Add option 'Feti dump system=Logica', to dump the FETI system (K,f,R,B) to disk.
48
Dump may also include inequality constraints.
49
50
- Support for Intel MKL (Pardiso) with WITH_MKL:BOOL=TRUE|FALSE CMake variable.
51
52
Allow some more control over the MKL Pardiso settings, especially setting the matrix
53
type by using keyword 'Linear System Matrix Type', with choices
54
o 'general' or 'nonsymmetric'
55
o 'postive definite'
56
o 'symmetric idefinite'
57
o 'structurally symmetric
58
59
the last three also need the setting "Linear System Symmetric = True".
60
If this keyword is not given, the matrix type is determined as
61
o "Linear System Symmetric=False" -> 'nonsymmetric'
62
o "Linear System Symmetric=True" & "Linear System Positive
63
Definite=true" -> 'positive definite'
64
o "Linear System Symmetric=True" & "Linear System Postive
65
Definite=False" -> 'structurally symmetric'
66
67
Note that the "Structurally Symmetric" mode of the MKL Pardiso can't handle
68
(symmetric) indefinite matrices.
69
70
- Updated Hypre & Trilinos interfaces.
71
o HYPRE parameter 'BoomerAMG Strong Threshold'
72
o Add interface to Hypre AMS preconditoner.
73
o In Trilinos added possibility to pass node coordinates to ML
74
(set "aggregation: aux: enable" in the ML parameter list)
75
76
- Direct solvers
77
o Default to MUMPS for parallel direct solver
78
o Default to Umfpack for serial runs
79
80
- Keep MPI alive even if #cores=1, e.g. allow, f.ex., use of MUMPS solver in serial runs
81
with MPI-linked executable.
82
83
- GCR iteration
84
o Recompute the true residual when restarting and check the accuracy of
85
the iterated residual norm when the convergence criterion is met
86
87
- Stopping creteria
88
o Add option to use |Ax-b|/(|A||x|+|b|) as stopping criteria.
89
o Componentwise and normwise relative backward errors may be used as stopping criteria for linear solvers.
90
91
- Add 'mumpslocal' direct solver option (has some additional functionality to 'mumps')
92
93
- Possibility to scale the solution optimally before going to linear systems solution.
94
95
- Added namespace 'mglowest:' to the linear solvers used for the lowest level in all multigrid methods.
96
97
- Converge tolerances related to the block preconditioning may now be adjusted adaptively during the
98
solution process if the keyword "Linear System Adaptive Tolerance" is given.
99
100
- Enable saving of ConstraintMatrix mainly for debugging purposes.
101
102
- Added Matrix_t field "PrecValues(:)"; use this when factorizing ILUs
103
instead of "Values", if defined by user. The "PrecValues" may be
104
update elementwise using DefaultUpdatePrec(P), and it is by default
105
scaled by the same scaling as the "Values" field.
106
107
108
Mesh interpolation and manipulation
109
-----------------------------------
110
111
- Internal LoadMesh functionality
112
o Eliminates the need of old "eio" library.
113
o Othewise the functionality is maintained.
114
115
- Discontinuous Meshes:
116
o It is now possible to introduce discontinuous boundaries to the mesh at the time of reading the mesh.
117
At the boundaries the nodes are doubled which may be used to introduce discontinuities on the fields.
118
o For the discontinuity projectors may be applied to restore the continuity, or to set jump conditions
119
on the boundary. Keyword is "Discontinuous Boundary = Logical True" in BC section.
120
o There are many test cases with prefix "DisContBoundary".
121
122
- Internal mesh extrusion that can be applied also in parallel.
123
o May remove meshing bottle-necks by allowing efficient mesh generation from 2D foot-prints.
124
o It is possible to have a desired distribution of elements in the extruded direction.
125
o Min and max coordinate in the extruded direction may be given.
126
o Several options to tweak how the entities are treated and numbered in extrusion.
127
128
- Projectors
129
o Projectors to ensure the the continuity of fields over nonconformal (or conformal) mesh interfaces.
130
o Both node-to-surface (strong) and surface-to-surface (weak, galerkin, mortar) type of projectors available
131
o A tailored projector family "Level Projector" for cases where exact match between interface meshes
132
may be found at some lower dimensional surface (or line)
133
o Various strategies implemented (flat, rotational, radial) implemented to allow flattening of interface meshes.
134
The flattened interface meshes allow more accurate projection since there is no faceting of the meshes.
135
o Rotational projectors may be periodic or antiperiodic.
136
o Also edge degrees of freedom may be projected.
137
138
139
Nonlinear system features
140
-------------------------
141
- Nonlinear Timestepping
142
o Improved Newmark time integration scheme so that the terms related to previous timestep also
143
use previous stiffness matrix and force vector. This may yield better accuracy for nonlinear
144
problems in time.
145
146
- FCT, Flux Corrected Transport
147
o A preliminary version of monotonicity preserving scheme (see e.g. Dimitri Kuzmin et al.)
148
o Requires global access to mass matrix and is applicable only to transient scalar problems.
149
o Activation by "Linear System FCT = Logical True" to advection-diffusion type of equation
150
(with Crank-Nicholsen time discreation).
151
152
- Soft Limiters:
153
o Changed the way how soft limiters can be applied so that the residual is computed within the assembly loop.
154
This makes it possible to apply soft limiters also to nonlinear cases.
155
156
- Slave Solver strategy for coupled problems
157
o Any solver can have "Slave Solvers" which are solved within the DefaultInitialize slot
158
of the primary solver. This makes it possible to implement efficient coupling methods
159
for nonlinear problems, also accounting step-size control.
160
161
- Add keyword "Nonlinear System Compute Change in Scaled System = Logical". The
162
purpose is to allow linear & nonlinear convergence measure matching when
163
"Nonlinear System Convergence Measure = residual"
164
165
- Modified the linesearch and made it more easily usable with legacy solvers.
166
o At minimum, just include "IF( DefaultLinesearch() ) GOTO 100" where the goto address is
167
the start of the assembly process.
168
169
170
Other libtary functionality
171
---------------------------
172
- Table input:
173
o Specification "Cubic Monotone" implemented to sif-file table input.
174
This keeps the cubic spline monotone, if the input is monotone.
175
176
- ListGetFun:
177
o Subroutine that may be called internall by an argument still maintaining the standard GetReal sif syntax.
178
o Enabled optional computation of derivatives in ListGetFun.
179
180
- Added possibility to obtain the keyword for which an User Defined Function is called for
181
Using "ListGetActiveName()" function.
182
183
- Added possibility to output information on several partitions when running in parallel using keyword
184
"Max Output Partition" of type Integer.
185
186
- Added functions "GetRealVector" and "GetComplexVector" to allow for easier definition of vector valued
187
keywords within user modules. Also works for "Equals" and "Opposes" statements.
188
189
- Added Component list type for entities not related to mesh. E.g. electric circuits, chemical reactions etc.
190
Use GetComponent() to get these from the list.
191
192
- Created a new way to compare to reference solution where the user may give Solver-specific "Reference Norm".
193
Case is passed when all reference norms are passed within given tolerance. Also added possibility to compare
194
to analytical solution when making tests in addition to precomputed reference norm.
195
Keywords for this is "Reference Solution" of type Real.
196
197
- Simple geometric clustering methods implemented for future internal partitioning.
198
199
- Implicit friction model where the tangential traction is set to be the normal traction multiplied by a signed friction coefficient.
200
Works yet properly only in 2D.
201
202
- Enable setting of BCs (and body forces) such that constant value is enforced on the BC (or body force).
203
One node is used as the "supernode" and other rows are lumped to this row. The other nodal dofs will get the
204
same value as the one in the supernode.
205
206
- Adding a keyword in sif to change bodywise element type definitions for solvers. The used convention is given in Body section
207
in the following form, Solver n: Element = String, where String is the conventional element type definition.
208
209
- Any real valued keyword may be normalized by area (or volume) by giving keyword 'keyword normalize by area' (or volume)
210
resulting to the value of 'keyword' being divided by the area (volume) at the time of calling. The area should be the
211
operator for BCs and for other field (material, body, body force) the volume should apply.
212
213
- A utility to set just one node in boundary/body force section to make floating potentials unique.
214
215
- More versatile saving of linear systems. Called with keyword 'Linear System Save'.
216
217
- Possibilitty to add default boundary condition with keyword 'Default Target = Logical' in BC section.
218
219
- ListGetRealAtIP function routine to also deal with computing data at IPs.
220
221
- Added ListCheckPrefix keyword for checking whether keyword with given prefix exists. Also added
222
ListCheckPrefixAny* routines for checking if a keyword with the given prefix in any BC, Body Force, Body or IC.
223
224
- Various ListCheckAny* functions to make it possible to simplify many solver modules.
225
226
- Added function for checking whether a keyword with a given prefix exists, ListCheckPrefix. As there can be multiple
227
corresponding keywords to this it does not make sense to get the value. A typical use could be to check for existance
228
of keywords of style 'prefix '//TRIM(VarName).
229
230
- Keyword > Exec Condition < for Solver section implemented to allow setting of condition that determinenes
231
whether a solver will be executed. A positive number is regarded to be True.
232
233
- Added possibility to enforce steady-state execution within transient simulation by setting > Steady State Condition <
234
flag to a positive number.
235
236
- Saving and restarting works also with global variables. Also there is a better chance that they will work with non-nodal fields.
237
Restart may be selective such that 'Restart Variable i', i=1,2,3,.. may be optionally given in the Simulation section.
238
239
- Global variable for periodic problems 'Periodic Time'. Time period may be set by "Simulation Block"
240
keyword 'Time Period', the default is inifite. This makes it easy to have parameters with cyclic dependence.
241
242
- Add a "Solver" section flag "Enforce Exact Dirichlet BCs" (default: true), setting
243
this to false restores old behaviour concerning Dirichlet BC & external constraint
244
interaction.
245
246
- Improvements for p-elements
247
o Try to apply p-element basis & integration schemes only
248
to Solvers that ask for p-elements
249
o Enable p-basis for "Mesh Level=n" generated meshes
250
251
252
ElmerSolver Solver modules
253
---------------------------
254
- MagnetocDynamics:
255
o CalcFields: can also compute derived fields for initial 2D nodal potential.
256
o Improved logic when to compute Jfix field and its BCs.
257
o The nonlinear iteration can now use the stopping criterion ||b-A(V)V|| / ||b|| with V the
258
current nonlinear iterate.
259
o The use of new Piola transformed elements can now be activated from a sif file for stationary and
260
transient cases.
261
o Anisotropic electric conductivity should now be handled correctly for any type of conductivity
262
tensor (even nonsymmetric)
263
o Calculate votages, torque and moment of inertia.
264
o Add block solution for (MagnetoDynamics style) implemted for A-V formualation
265
(no other matrix blocks assumed).
266
o CalcFields: support for stranded coils current density and electric fields computation.
267
A possibility to calculate JxB, that is the magnetic force.
268
o Added a functionality to compute the Average Magnetic Flux, Average Magnetic Flux Density
269
and Magnetic Flux Area on a given boundary.
270
o Added the so called classical Low-Frequency Model to MagnetoDynamics module for taking
271
eddy currents into account in lamination stacks.
272
o Harmonic: Added low frequency and wide-frequency band models for taking eddies in laminate
273
stacks into account
274
o Adding a possibility to use rotation matrix in MagnetoDynamics.
275
This could be used to transform the anisotropic material property tensors.
276
o Added a foil coil which is now a regognized option as a coil model.
277
278
- MagneticDynamics2D:
279
o New solver with similar functionality as with the MagnetoDynamics solver but for 2D nodal elemenets
280
o Harmonic and steady state versions available.
281
o Also cylindrically symmetric cases may be treated.
282
283
- VectorHelmholz:
284
o New solver that can be used to study vector valued wave problems in electromagnetics.
285
o Solver includes shifted matrix for ILU preconditioning. The solver can use both the
286
simplest and lowest non-affine edge elements.
287
o Includes also VectorHelmholtzCalcFields to compute postprocessed fields.
288
289
- WaveSolver:
290
o New preliminary solver for the classical transient wave equation for scalar potential.
291
292
- HarmonicLoss:
293
o New solver that can be make on on-the-fly fourier transform and estimate the componentwise
294
harmonic losses. Losses can be linear or quadratic with frequency.
295
296
- StatCurrentSolver:
297
o Implemented nonlinearity for StatCurrentSolver
298
299
- ParticleAcvector:
300
o When advecting particles may compute path integrals over the particle track
301
302
- HeatSolver:
303
o Implemented 'Infinity BC Temperature' for HeatSolver that assumes infinately large conducting domain.
304
305
- ResultOutputSolver:
306
o A hack to save results automatically also in vtu format by just giving the "Post File" the suffix ".vtu".
307
o Added support of Elmer elements 820 and 827 to VtuOutputSolver.
308
o Vtu output format can now also save discontinuous fields where each node is saved separately for each element.
309
The keyword for this is "Discontinuous Galerkin = True". Note that the resulting VTU files may be huge!
310
o In VtuOutputSolver enable saving and omitting of halo elements in parallel output.
311
New logical keywords introduced 'Skip Halo Elements' and 'Save Halo Elements Only'.
312
o In vtu format enables saving of only boundaries or bulk elements. Activated by new keywords
313
'Save Boundaries Only' and 'Save Bulk Only'.
314
o Include information about possible discontinuity of the mesh in the filename of vtu files.
315
o Introduced two new keywords, "Save Elemental Fields" and "Save Nodal Fields" in VTU format. The default for both is "True".
316
o Added a mask condition that may be used to pick the elements and nodes to be saved in VTU format in ResultOutputSolver.
317
o Added default names for physical bodies/BCs in case of Gmsh output.
318
319
- ElasticSolver:
320
o The spring BC definition is now given in terms of the pseudo-traction vector
321
o Surface traction BCs can now be defined using the conventional terms even for large displacements.
322
o Enhanced postprocessing features to inlude principal strain computation
323
324
- StressSolver:
325
o Added namespace for stress computation to allow different linear system settings.
326
o Nonlinear Linesearch added to linear elasticity solver
327
328
- SaveData
329
o SaveDependence: New auxiliary subroutine for saving functional forms in a 1D table.
330
331
- SaveParticleData:
332
o Added Gmsh output for the particles.
333
334
- IsoSurfaceSolver:
335
o New Solver for saving isolines or isosurfaces of given field as a mesh.
336
Also saving of .geo files for Gmsh for further meshing.
337
338
- DataToFieldSolver:
339
o Given data in scattered points fit a field to the data. In the case of noisy or missing
340
data diffusion may be added for regularization.
341
342
- Acoustics:
343
o New Solver for the linearized NS equations in the frequency domain.
344
345
- CompessibleNS
346
o New Solver for large-amplitude acoustics in time domain.
347
348
- CoilSolver:
349
o A preliminary solver that may be used to set currents for closed open and closed coils.
350
The current may be normalized to given density, or other heuristic methods may be used to make
351
the current distribution more uniform.
352
353
354
ElmerGUI
355
---------
356
- New XML files for menu defitions:
357
o vectorhelmholtz.xml: Wave equation for electric/magnetic fields
358
o magnetodynamics2d.xml
359
- New keyword settings in meny
360
o bicgstabl polynomial order setting
361
o vanka as choice for preconditioner
362
- Generate sif automatically when saving a mesh or exiting
363
- Group similar boundary conditions in ElmerGUI for more compact sifs.
364
- Possibility to use ParaView in post processing in ElmerGUI. The PATH environment variable
365
of the workstation should point to the bin directory of PV.
366
367
ElmerGrid
368
---------
369
- ElmerGrid export:
370
o Basic Gmsh output to ElmerGrid.
371
o Ascii XML VTK writer. The purpose of this is to provide an alternative way to view
372
the meshes and partitioning prior to actually computing anything.
373
374
- ElmerGrid import:
375
o Preserves names of entities also for Gmsh mesh format.
376
o GiD import extended for two additional elementtypes.
377
o Adopted Comsol input to the new style of .mphtxt files for geometric entity names
378
379
- ElmerGrid partitioning:
380
o Improved partitioning so that the user may use dual graph instead of the nodal graph to make the partitioning.
381
This is invoked with flag '-partdual'.
382
o Memory savings implemented by directly constructing sparse matrices (for Metis).
383
o Implemented new hierarchical partitioning routine that can be used to first
384
partition boundary elements with Metis, and thereafter the remaining bulk elements. The user may also
385
extend the partitioned boundary with additional element layers to the bulk elements (default is one).
386
o Improved on partitioning routines for rotational and constrained problems.
387
o Enabled hybrid partitioning where the connected elements may be partitioned using 1D partitioning and the
388
rest of the elements are partitioned with Metis.
389
o First version of halo in z-direction, testing still incomplete.
390
o Enabled even partitioning with the -partitioning flag.
391
392
- Other features:
393
o Enabled that the checking of parent elements for bc elements in partitioning is done only optionally using new -partbcoptim flag.
394
o Enabled constant helicity when extruding meshes.
395
o New style of selective extrusion where the materials to be extruded may be handpicked for each laye
396
397
398
399
400
401
402