v0.6.4 update#319
Open
softmattertheory wants to merge 476 commits into
Open
Conversation
…correct block constructors
New linear algebra library. Includes replacement class for Matrix and a new ComplexMatrix class with extensive sharing of code and possible future expansion. Includes new functionality: Matrix slicing now works with Tuples as well as Lists and Arrays. Matrix indexing now supports negative indices to access the last element of a list. Matrix and ComplexMatrix make better use of Tuples to return results, e.g. for dimensions(), eigenvalues() etc. Matrix and ComplexMatrix support additional functionality, e.g. qr() and svd()
New multiple dispatch resolver with slow source-of-truth resolver.
now produces a Tuple
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release notes for 0.6.4
We're pleased to announce Morpho 0.6.4, which contains many significant improvements and is the first release available natively on Windows.
New linear algebra implementation
The linear algebra package in morpho has been rewritten to support complex matrices as well as a more extensible implementation that should support other matrix types in future. These still use the BLAS and LAPACK numerical libraries, but more underlying capability is exposed. Both the
MatrixandComplexMatrixnow support additional matrix decompositions, such as QR decomposition and SVD. The new implementation is highly compatible with existing code; in a few cases alternative error messages are generated and results are returned in Tuples rather than Lists.Additional finite elements
In addition to the existing CG1 and CG2 implementations, morpho now supports a third order Lagrangian element CG3; this is valuable for problems involving hessians, for example. Support in the codebase for higher order elements has been improved, e.g.
MeshRefineris now able to refine aFieldusing these elements correctly. TheFiniteElementSpaceclass now exposes additional information about a particular finite element to the user.Interior penalty schemes are now available through a
Jumpfunctional, which integrates over the join between two connected elements. See thejumpdocumentation for more details. (This feature is experimental).Additional functionality available within integrand functions
Functions passed to
LineIntegral,AreaIntegralandVolumeIntegralmay call some special functions to access additional information:Improved type checking within the compiler
The morpho compiler now allows variables to be declared with a distinct type, e.g.
and enforces these through a combination of static and runtime checks. Assignment of an incorrect type to a typed variable yields a type error. The compiler is able to infer many types automatically across arithmetic operations, function calls etc. A few new classes have been added, e.g.
Callable, to assist in writing functions using multiple dispatch.Improvements to help system
The core help system has been moved from the terminal app to the morpho library, facilitating access by other interfaces. An improved markdown parser enables richer help entries. Enhanced search capabilities: the help system now provides a hint if there are multiple matches, and possible matches if there are none (e.g. if the user misspells something). Help text can now be retrieved programmatically using
System.help.Folder improvements
New class methods
Folder.createandFolder.createRecursiveallow creation of new folders. The class methodFolder.normalizePathconverts a file path with arbitrary folder delimiters to the correct ones for the current platform.Minor fixes
System.setworkingfolderfixed.Tupleclass to better matchList's capabilities.