xTras changelog =============== v1.4.2, 2014-10-30 ------------------ * Added RicciToRiemann. * Added KretschmannToRiemann. * ToRiemann also converts rank-2 curature tensors if the curvature relations are not enabled. * ToRicci also converts contractions of Riemann tensors to Ricci tensors even if the curvature relations are not enabled. v1.4.1, 2014-10-07 ------------------ * IndexConfigurations gives correct results for expressions with more than one tangent bundle. * EulerDensity is faster, and takes the option Verbose. * xTras now needs xTensor 1.1.1. v1.4.0, 2014-08-22 ------------------ * AllContractions automatically parallelizes on Mathematica 8 or newer. * AllContractions has an improved algorithm. * AllContractions directly calls the external xPerm executable, which makes it about 5x faster. * ConstantSymbolsOf now takes multiple arguments. * RiemannSimplification's error-message is more human-readable. v1.3.3, 2014-03-31 ------------------ * xTras now requires xTensor 1.1.0. * Products of symmetrized derivatives that commutate are now fully canonicalized. * Improved speed of perturbations of symmetrized derivatives. * Fixed two PrintAs related issues. * FromIndexFree is now compatible with $AutoSymmetrizeCovDs = True. * CollectTensors is more verbose while simplifying coefficients. v1.3.2, 2014-03-03 --------------------- * Symmetrized derivatives use the chain rule on scalar functions. * Improved speed of SymmetrizeCovDs in some situations. * SymmetrizeCovDs strips all dummy indices before caching. * VarD on symmetrized derivatives w.r.t. to another derivative works. * Symmetrized covariant derivatives pass Validate. * CollectTensors is faster on expressions that are (partially) collected. * TensorWrapper is much faster on large products (was exponential in the number of terms, is now linear). * Fixed warning message in SolveTensors. v1.3.1, 2014-02-22 ------------------ * Added the function ConstantSymbolsOf. * Added possibility (controlled by the variable $AutoSymmetrizeCovDs) to automatically symmetrize covariant derivatives. * Added caching to SymmetrizeCovDs, controlled by the "UseCache" option. * Improved algorithm for symmetrizing covariant derivatives in the case when there is no torsion and the derivative is metric-compatible. * Perturbation no longer expands symmetrized covariant derivatives. v1.3.0, 2014-02-10 ------------------ Big changes: * Added functions for symmetrizing covariant derivatives (SymmetrizeCovDs and ExpandSymCovDs). * Added the symmetrized Riemann tensor. Other changes: * Added the function ToRiemann. * RiemannYoungProject only projects if the Riemann tensor has its full symmetries; otherwise it does nothing. * RiemannYoungProject also projects Weyl and symmetrized Riemann tensors. * TableauSymmetric now inherits the value of its option ManifestSymmetry from YoungSymmetrize. v1.2.3, 2013-11-22 ------------------ * Added GradChristoffelToRiemann. v1.2.2, 2013-09-14 ------------------ Again a small bugfix release: * RemoveConstants, RemoveTensors, and TermsOf now also work on non-expanded sums. v1.2.1, 2013-08-16 ------------------ This is a small bugfix release. The changes are: * Defining a metric with PD as its Levi-Civita derivative is no longer broken. * Extra curvature tensors Schouten, SchoutenCC, and EinsteinCC tensors are defined only when there is curvature. Furthermore, they become non-symmetric when there is torsion, and are properly extended, projected, and orthogonalized when needed. * Added torsion to the RHS of the contracted Bianchi identities returned by CurvatureRelationsBianchi. v1.2.0, 2013-08-12 ------------------ Big changes: * Added built-in documentation. * Added the xTrasHelp command, which opens the xTras documentation. * Added fancy usage messages. * All public symbols are back in the same context ("xAct`xTras`"). Other changes: * Added DefNiceConstantSymbol. * Added TableauDimension. * Added the AllContractions:nocontr message, which is generated when AllContractions returns nothing (for various reasons). * AllContractions also takes Lists as second arguments. * AllContractions can also handle expression with odd number of indices. * AllContractions gives less duplicate results. * AllContractions returns an empty list instead of throwing an exception for cases where there are no contractions. * Changed Implode/ExplodeIndices to To/FromIndexFree. * Changed UncontractedPairs to UncontracedIndices. * Fixed bug in SolveTensors. * It is now possible to change dimensions between ConstructDDIs calls. * Removed DoTensorCollect. * Removed ExpandPerturbationDer. * Removed FS. * Removed MakeEquationRule. * Removed MetricPermutations. * Removed OrderCoefficient. * Removed PerturbationOfMetric. * Removed PerturbationParameter. * Removed PerturbationParameterOfMetric. * Removed TensorCollect. * Removed TensorCollector. * Removed UnorderedPairsPermutations. * Reset $CovDFormat and CurvatureRelations at load time. * RiemannYoungProject and RiemannYoungRule take the option ManifestSymmetry. * RiemannYoungRule and RiemannYoungProject no longer take a levelspec argument, but always project the Riemann and its first derivative onto their Young tableaux. * TableauSymmetric is MMA 6 compatible. * TermsOf now removes constants. * The default value of Description is None. * TimeString[60] returns "1 minute" instead of "60 seconds". * YoungProject is faster. * YoungTableauQ is a bit more precise. v1.1.3, 2013-05-29 ------------------ Changes: * Added MakeTraceless. * Added ConstructDDIs. * Added YoungSymmetric. * Added ToLevelSpec. * Added ExplodeIndices and ImplodeIndices. * Added MakeContractionAnsatz. * Removed ContractedPairs. * Don't define the auxiliary tensor in AllContractions if it already exists. * AllContractions returns fewer duplicate contractions. * SolveTensors solves by default for monomials. * CollectTensors works better with Scalar objects. * Made CollectTensors a bit more verbose. * Fixed a bug in CollectTensors (where canonicalization of tensors would prevent collecting). * The default perturbation parameter of the metric is no longer called "\[Epsilon]metric", but "PerturbationParametermetric". v1.1.2, 2013-03-06 ------------------ What's new: * Added option ManifestSymmetry to YoungSymmetrize that controls the convention of symmetrizing (i.e. first symmetric, then antisymmetric, or the other way around). * Fixed a small bug in CollectTensors. * Allow Young tableaux to be subsets of free indicesof expressions / tensors. * Changed SolveTensors to allow for patterns in list of tensors to solve for. * Fixed trying to set Bianchi identities for flat metrics. * Fixed build file. * Fixed: SolveConstants doesn't try to solve for numeric symbols (such as Pi). * Replaced some Modules with Withs. * InvarWrapper nicely aborts if the Invar database is not found. v1.1.1, 2013-01-26 ------------------ What's new: * xTras now requires MMA 6. * Broken xTras into multiple packages. * Added Kretschmann scalar to SymmetricSpaceRules. * Added ToRicci. * Added RiemannYoungProject. * Added option Parallelization to MapTimed. If True, MapTimed uses ParallelMap. * Added MapTensors / MapTimedTensors. * Added CollectConstants. * Renamed TensorCollector to TensorWrapper. * Renamed TensorCollect to CollectTensors. * Renamed PreferBox/DivOf to SortCovDsToBox/Div. * Renamed RiemannDivRule / RicciDivRule to CurvatureRelationsBianchi. * Renamed the function KillingVectorOf to MetricOfKillingVector; the option KillingVectorOf is still named the same. * Removed PreferBox/DivOfRule. * Removed option MonitorSteps from MapTimed. * Changed DerivativeOrder slightly (added thread over Plus and support for Kretschmann scalar). * Changed IndexConfigurations to return a sorted list. * Changed EulerDensity to return object with Scalar heads. * Changed Invar functions to block printing of reading of Invar database. * Changed default printing of metric perturbations to PrintAs[Perturbation] <> PrintAs[metric]. * Fixed a bug in MapTensors. It now passes options to its internal function. * Fixed a bug in SolveTensors. (Forgot to add a levelspec to Position. Don't know why it previously worked on MMA < 9.) * SolveTensors only sorts the tensors it solves for when the user doesn't specify them (with SolveTensors[expr==0] ). * SolveTensors sorts the tensors to solve for by first removing TensorWrappers. * RemoveConstants now also removes constants from expressions without tensors (resulting in 1). * CollectTensors no longer threads over lists (as it is no longer necessary). * AllContractions sorts answer and deletes duplicates and zero. * Introduced UnitConstant to TensorWrapper. * VarL performs variations w.r.t. metric determinant separately. * MapTimed no longer has the DoTensorCollect option. * FullSimplification doesn't call TensorCollect in the end, but ToCanonical. * DefMetric no longer has the DefVariation option, but instead a DefMetricPerturbation option. * DefMetricPerturbation automatically defines a metric variation (DefMetricVariation is now private). v1.0.6, 2012-12-23 ------------------ What's new: * Added SolveTensors, which can solve (a system of) linear tensor equations, and deprecates MakeEquationRule. * Added IndexConfigurations. * Added PreferDifOf and PreferBoxOf functions. * Added MapTimedIfPlus. * Added options (Un)contractedPairs to AllContractions. * Added options RemoveTensorCollector and Verbose to TensorCollect. * TensorCollect prints a message if things might not have been fully collected. * TensorCollector threads over Equal. * TensorCollector prints like Scalar: with colored parentheses around the wrapped expression. * New and faster algorithm for AllContractions, that contracts indices stepwise. * Delete duplicate equations from ToConstantSymbolEquations. * Another (sigh) and faster rewrite of TensorCollect. * Speed improvements in SolveConstants. * MapTimed prints info a bit nicer. * Don't restrict ToConstantSymbolEquations to work only on things that don't contain lists (this prevented it to work on basis expressions). v1.0.5, 2012-11-09 ------------------ What's new: * Made TensorCollect listable. * ToConstantSymbolEquations handles more cases (lists, a==b==c). * SolveConstants now takes a ! argument, which specify which variables we shouldn't solve for. * Changed AllContractions, both the algorithm and the interface. v1.0.4, 2012-10-25 ------------------ What's new: * Added two xCoba extensions, ComputeBasisValues and ImplodedTensorValues. * Added Perturbation(Parameter)OfMetric. * Added SolveConstants, which is much more similar to Solve than TensorCollectSolve was. * Removed TensorCollectSolve. * Renamed MyRiemannSimplify to RiemannSimplification. * Changed MakeEquationRule such that it only works for equations (LHS == RHS). * $RicciSign is now taken into account in various functions. * Fixed a minor bug ( #&/ instead of #&/@ ) in PreferDivOfRule. * Remove zeros from AllContractions. * Don't show Def messages for temporary constants. * Updated some usage messages. v1.0.3, 2012-10-10 ------------------ What's new: * Added SortedCovDsQ * Added AllContractions. * Added MetricPermutations. * MapTimed now works for generic levelspecs. * Gave RiemannYoungRule a levelspec. * Different implementation of Killing vectors. No longer need to issue the 'Killing' command. * Killing vector are now defined w.r.t. to metrics, not CovDs. * Allow for label indices in Killing vectors. * Added version check for xTensor. * xTras initialization messages are more like xAct. * Automatically define metric variations by default when defining a metric. * Removed the FD symbols and functionality. * Renamed FS to FullSimplification. * MyRiemannSimplify now only acts on Riccis and Riemanns, fixing a bug that appeared when it acted on other curvature tensors. * MyRiemannSimplify checks more carefully for wrong values of $InvSimplifyLevel * Fixed bug in MakeEquationRule that caused the LHS to still be partly present in the RHS. * ExpandPerturbation now knows how to deal with extra curvature tensors. * Removed ExpandPerturbationDer from VarDt function, hopefully fixing a bug that was probably caused by using SeparateMetric[] twice. * Fixed a bug in YoungTableauQ that prevented symmetric Young tableaux from evaluating to True. v1.0.2, 2012-08-19 ------------------ What's new: * Implemented Killing vectors. Killing vectors can be define w.r.t. a covariant derivative while define the vector itself, e.g. DefTensor[V[-a],M,KillingVectorOf->CD]. * Fixed a bug in ConstantExprQ. v1.0.1, 2012-05-06 ------------------ What's new: * Added xTension hook. The package automatically defines Schouten tensors etc. when calling DefMetric. * Fixed a bug in InvarWrapper (so MyRiemannSimplify should work in more cases). * Renamed TimedMap to MapTimed. v1.0.0, 2012-03-25 ------------------ First version.