## From combinatorics: an algorithm to enumerate...

by: Maple

Greetings to all. I am writing today to share a personal story / exploration using Maple of an algorithm from the history of combinatorics. The problem here is to count the number of strings over a certain alphabet which consist of some number of letters and avoid a set of patterns (these patterns are strings as opposed to regular expressions.) This counting operation is carried out using rational generating functions that encode the number of admissible strings of length n in the coefficients of their series expansions. The modern approach to this problem uses the Goulden-Jackson method which is discussed, including a landmark Maple implementation from a paper by D. Zeilberger and J. Noonan, at the following link at math.stackexchange.com (Goulden-Jackson has its own website, all the remaining software described in the following discussion is available at the MSE link.) The motivation for this work was a question at the MSE link about the number of strings over a two-letter alphabet that avoid the pattern ABBA.

As far as I know before Goulden-Jackson was invented there was the DFA-Method (Deterministic Finite Automaton also known as FSM, Finite State Machine.) My goal in this contribution was to study and implement this algorithm in order to gain insight about its features and how it influenced its powerful successor. It goes as follows for the case of a single pattern string: compute a DFA whose states represent the longest prefix of the pattern seen at the current position in the string as it is being scanned by the DFA, with the state for the complete pattern doubling as a final absorbing state, since the pattern has been seen. Translate the transitions of the DFA into a system of equations in the generating functions representing strings ending with a given maximal prefix of the pattern, very much like Markov chains. Finally solve the system of equations for the generating functions and thus obtain the sequence of values of strings of length n over the given alphabet that avoid the given pattern.

I have also implemented the DFA method for sets of patterns as opposed to just one pattern. The algorithm is the same except that the DFA does not consist of a chain with backlinks as in the case of a single pattern but a tree of prefixes with backlinks to nodes higher up in the tree. The nodes in the tree represent all prefixes that need to be tracked where obviously a common prefix between two or more patterns is shared i.e. only represented once. The DFA transitions emanating from nodes that are leaves represent absorbing states indicating that one of the patterns has been seen. We run this algorithm once it has been verified that the set of patterns does not contain pairs of patterns where one pattern is contained in another, which causes the longer pattern to be eliminated at the start. (Obviously if the shorter pattern is forbidden the so is the longer.) The number of states of the DFA here is bounded above by the sum of the lengths of the patterns with subpatterns eliminated. The uniqueness property of shared common prefixes holds for subtrees of the main tree i.e. recursively. (The DFA method also copes easily with patterns that have to occur in a certain order.)

I believe the Maple code that I provide here showcases many useful tricks and techniques and can help the reader advance in their Maple studies, which is why I am alerting you to the web link at MSE. I have deliberately aimed to keep it compatible with older versions of Maple as many of these are still in use in various places. The algorithm really showcases the power of Maple in combinatorics computing and exploits many different aspects of the software from the solution of systems of equations in rational generating functions to the implementation of data structures from computer science like trees. Did you know that Maple permits nested procedures as known to those who have met Lisp and Scheme during their studies? The program also illustrates the use of unit testing to detect newly introduced flaws in the code as it evolves in the software life cycle.

Enjoy and may your Maple skills profit from the experience!

Best regards,

Marko Riedel

The software is also available here: dfam-mult.txt

## Equidistant surface

by: Maple 15

Example of the equidistant surface at a distance of 0.25 to the surface
x3
-0.1 * (sin (4 * x1) + sin (3 * x2 + x3) + sin (2 * x2)) = 0
Constructed on the basis of universal parameterization of surfaces.

equidistant_surface.mw

## Numerov algorithm in Maple

Maple 18

Hi there, fellow primers, it's good to be back after almost 5 years! I just want to share a worksheet on Numerov's algorithm in Maple using procedures as I've recently found out that google could not find any Maple procedure that implements Numerov's algorithm to solve ODEs.   numerov.mw   Reference.pdf

## Visualizing Multiple Quandl Data Sets using Bubble...

by: Maple 2015

This is the first of three blog posts about working with data sets in Maple.

In 2013, I wrote a library for Maple that used the HTTP package to access the Quandl data API and import data sets into Maple. I was motivated by the fact that, when I was downloading data, I often used multiple data sources, manually updated data when updates were available, and cleaned or manipulated the data into a standardized form (which left me spending too much time on the data acquisition step).

Simply put, I needed a source for data that would provide me with a searchable, stable data API, which would also return data in a form that did not require too much post-processing.

My initial library had really just scratched the surface of what was possible.

Maple 2015 introduced the new DataSets package, which fully integrated a data set search into core library routines and made its functionality more discoverable through availability in Maple’s search bar.

Accessing online data suddenly became much easier. From within Maple, I could now search through over 12 million time series data sets provided by Quandl, and then automatically import the data into a format that I could readily work with.

If you’re not already aware of this online service, Quandl is an online data aggregator that delivers a wide variety of high quality financial and economic data. This includes the latest data on stocks and commodities, exchange rates, and macroeconomic indicators such as population, inflation, unemployment, and so on. Quandl collects both open and proprietary data sets from many sources, such as the US Federal Reserve System, OECD, Eurostat, The World Bank, and Open Data for Africa. Best of all, Quandl's powerful API is free to use.

One of the first examples for the DataSets package that I constructed was in part based on the inspirational work of Hans Rosling. I was drawn in by his ability to use statistical visualizations to break down complex multidimensional data sets and provide insight into underlying patterns; a key example investigating the correlation between rising incomes and life expectancy.

As well as online data, the DataSets package had a database for country data. Hence it seemed fitting to add an example that explored macroeconomic indicators for several countries. Accordingly, I set out to create an example that visualized variables such as Gross Domestic Product, Life Expectancy, and Population for a collection of countries.

I’ll now describe how I constructed this application.

The three key variables are Gross Domestic Product at Power Purchasing Parity, Life Expectancy, and Population. Having browsed through Quandl’s website for available data sets, the World Bank and Open Data for Africa projects seemingly had the most available relevant data; therefore I chose these as my data sources.

Pulling data for a single country from one of these sources was pretty straight forward. For example, the DataSets Reference for the Open Data for Africa data set on GDP at PPP for Canada is:

`DataSets:-Reference("quandl", "ODA/CAN_PPPPC"));`

In this command, the second argument is the Quandl data set code. If you are on Quandl’s website, this is listed near the top of the data set page as well as in the last few characters of the web address itself: https://www.quandl.com/data/ODA/CAN_PPPPC . Deconstructing the code, “ODA” stands for Open Data for Africa and the rest of the string is constructed from the three letter country code for Canada, “CAN”, and the code for the GDP and PPP. Looking at a small sample of other data set codes, I theorized that both of the data sources used a standardized data set name that included the ISO-3166 3-letter country code for available data sets. Based on this theory, I created a simple script to query for available data and discovered that there was data available for many countries using this standardized code. However, not every country had available data, so I needed to filter my list somewhat in order to pick only those countries for which information was available.

The script that I had constructed required three letter country codes. In order to test all available countries, I created a table to house the country names and three-letter country codes using data from the built-in database for countries:

`ccdata := DataSets:-Builtin:-Reference("country")[.., "3 Letter Country Code"];`
`cctable := table([seq(op(GetElementNames(ccdata[i])) = ccdata[i, "3 Letter Country Code"],                                 i = 1 .. CountRows(ccdata))]):`

My script filtered this table, returning a subset of the original table, something like:

`Countries := table( [“Canada” = “CAN”, “Sweden” = “SWE”, … ] );`

You can see the filtered country list in the code edit region of the application below.

With this shorter list of countries, I was now ready to download some data. I created three vectors to hold the data sets by mapping in the DataSets Reference onto the “standardized” data set names that I pulled from Quandl. Here’s the first vector for the data on GDP at PPP.

`V1 := Vector( [ (x) -> Reference("quandl", cat("ODA/", x, "_PPPPC"))`
`                   ~([entries(Countries, nolist, indexorder)])]):`
`#Open Data for Africa GDP at PPP`

Having created three data vectors consisting of 180 x 3 = 540 data sets, I was finally ready to visualize the large set of data that I had amassed.

In Maple’s Statistics package, BubblePlots can use the horizontal axis, vertical axis and the relative bubble size to illustrate multidimensional information. Moreover, if incoming data is stored as a TimeSeries object, BubblePlots can generate animations over a common period of time.

Putting all of this together generated the following animation for 180 available countries.

This example will be included with the next version of Maple, but for now, you can download a copy here:DataSetsBubblePlot.mw

*Note: if you try this application at home, it will download 540 data sets. This operation plus the additional BubblePlot construction can take some time, so if you just want to see the finished product, you can simply interact with the animation in the Maple worksheet using the animation toolbar.

A more advanced example that uses multiple threads for data download can be seen at the bottom of the following page: https://www.maplesoft.com/products/maple/new_features/maple19/datasets_maple2015.pdf You can also interact with this example in Maple by searching for: ?updates,Maple2015,DataSets

In my next post, I’ll discuss how I used programmatic content generation to construct an interactive application for data retrieval.

## Bug in WhittakerW integration

Maple 2016

Bug_in_integrate.mw

M_Iwaniuk

## Computer Algebra in Theoretical Physics: the IOP...

by: Maple

Below is the worksheet with the whole material presented yesterday in the webinar, “Applying the power of computer algebra to theoretical physics”, broadcasted by the “Institute of Physics” (IOP, England). The material was very well received, rated 4.5 out of 5 (around 30 voters among the more than 300 attendants), and generated a lot of feedback. The webinar was recorded so that it is possible to watch it (for free, of course, click the link above, it will ask you for registration, though, that’s how IOP works).

Anyway, you can reproduce the presentation with the worksheet below (mw file linked at the end, or the corresponding pdf also linked with all the input lines executed). As usual, to reproduce the input/output you need to have installed the latest version of Physics, available in the Maplesoft R&D Physics webpage.

 Why computer algebra? ... and why computer algebra? We can concentrate more on the ideas instead of on the algebraic manipulations   We can extend results with ease   We can explore the mathematics surrounding a problem   We can share results in a reproducible way
 Representation issues that were preventing the use of computer algebra in Physics Notation and related mathematical methods that were missing: coordinate free representations for vectors and vectorial differential operators, covariant tensors distinguished from contravariant tensors, functional differentiation, relativity differential operators and sum rule for tensor contracted (repeated) indices Bras, Kets, projectors and all related to Dirac's notation in Quantum Mechanics   Inert representations of operations, mathematical functions, and related typesetting were missing:   inert versus active representations for mathematical operations ability to move from inert to active representations of computations and viceversa as necessary hand-like style for entering computations and textbook-like notation for displaying results   Key elements of the computational domain of theoretical physics were missing:   ability to handle products and derivatives involving commutative, anticommutative and noncommutative variables and functions ability to perform computations taking into account custom-defined algebra rules of different kinds (commutator, anticommutator and bracket rules, etc.)

Examples

 The Maple computer algebra environment

Classical Mechanics

 Inertia tensor for a triatomic molecule

Classical Field Theory

 *The field equations for the  model
 *Maxwell equations departing from the 4-dimensional Action for Electrodynamics
 *The Gross-Pitaevskii field equations for a quantum system of identical particles

Quantum mechanics

 *The quantum operator components of   satisfy
 Quantization of the energy of a particle in a magnetic field

Unitary Operators in Quantum Mechanics

 *Eigenvalues of an unitary operator and exponential of Hermitian operators

Properties of unitary operators

Consider two set of kets  and , each of them constituting a complete orthonormal basis of the same space.

One can always build an unitary operator  that maps one basis to the other, i.e.:

 *Verify that  implies on
 *Show that is unitary
 *Show that the matrix elements of  in the  and   basis are equal
 Show that  and have the same spectrum

Schrödinger equation and unitary transform

Consider a ket  that solves the time-dependant Schrödinger equation:

and consider

,

where  is a unitary operator.

Does  evolves according a Schrödinger equation

and if yes, which is the expression of ?

 Solution

Translation operators using Dirac notation

In this section, we focus on the operator

 Settings
 The Action (translation) of the operator  on a ket
 Action of  on an operator

General Relativity

 *Exact Solutions to Einstein's Equations

*"Physical Review D" 87, 044053 (2013)

Given the spacetime metric,

a) Compute the Ricci and Weyl scalars

b) Compute the trace of

where  is some function of the radial coordinate,  is the Ricci tensor,  is the covariant derivative operator and  is the stress-energy tensor

c) Compute the components of the traceless part of   of item b)

d) Compute an exact solution to the nonlinear system of differential equations conformed by the components of   obtained in c)

Background: paper from February/2013, "Withholding Potentials, Absence of Ghosts and Relationship between Minimal Dilatonic Gravity and f(R) Theories", by P. Fiziev.

 a) The Ricci and Weyl scalars
 b) The trace of
 b) The components of the traceless part of
 c) An exact solution for the nonlinear system of differential equations conformed by the components of

*The Equivalence problem between two metrics

From the "What is new in Physics in Maple 2016" page:

 In the Maple PDEtools package, you have the mathematical tools - including a complete symmetry approach - to work with the underlying [Einstein’s] partial differential equations. [By combining that functionality with the one in the Physics and Physics:-Tetrads package] you can also formulate and, depending on the metrics also resolve, the equivalence problem; that is: to answer whether or not, given two metrics, they can be obtained from each other by a transformation of coordinates, as well as compute the transformation.
 Example from: A. Karlhede, "A Review of the Geometrical Equivalence of Metrics in General Relativity", General Relativity and Gravitation, Vol. 12, No. 9, 1980
 *Equivalence for Schwarzschild metric (spherical and Krustal coordinates)

Tetrads and Weyl scalars in canonical form

Generally speaking a canonical form is obtained using transformations that leave invariant the tetrad metric in a tetrad system of references, so that theWeyl scalars are fixed as much as possible (conventionally, either equal to 0 or to 1).

Bringing a tetrad in canonical form is a relevant step in the tackling of the equivalence problem between two spacetime metrics.

The implementation is as in "General Relativity, an Einstein century survey", edited by S.W. Hawking (Cambridge) and W. Israel (U. Alberta, Canada), specifically Chapter 7 written by S. Chandrasekhar, page 388:

 Residual invariance Petrov type I 0 1 0 none Petrov type II 0 0 1 0 none Petrov type III 0 0 0 1 0 none Petrov type D 0 0 0 0 remains invariant under rotations of Class III Petrov type N 0 0 0 0 1 remains invariant under rotations of Class II

The transformations (rotations of the tetrad system of references) used are of Class I, II and III as defined in Chandrasekar's chapter - equations (7.79) in page 384, (7.83) and (7.84) in page 385. Transformations of Class I can be performed with the command Physics:-Tetrads:-TransformTetrad using the optional argument nullrotationwithfixedl_, of Class II using nullrotationwithfixedn_ and of Class III by calling TransformTetrad(spatialrotationsm_mb_plan, boostsn_l_plane), so with the two optional arguments simultaneously.

The determination of appropriate transformation parameters to be used in these rotations, as well as the sequence of transformations happens all automatically by using the optional argument, canonicalform of TransformTetrad .

 >
 (7.4.1)
 Petrov type I
 Petrov type II
 Petrov type III
 Petrov type N
 Petrov type D

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

## Maple 2016.1a update now available

Maple 2016

Maple 2016.1a now available, fixes issues reported here http://www.mapleprimes.com/questions/211561-Why-Does-Maple-20161-Improperly-Treat-X2

Thank you Maplesoft for your quick response to this issue.

## Rotational motion mechanism

by: Maple 15

Rotational motion mechanism with quasi stops
02rep.pdf
DIMA.mw

by: Maple 15

## Hot key F1 does not work in 2016.1

by: Maple 2016

Hello All,

(I also sent this fact to Maplesoft Support).

Since I updayed to 2016.1 the F1 key does bring a menu witch send to..F5 only.

No way to have a "full" Help Menu.(See the attached file)

I guess a silly bug jumped in :)

Kind regards,

Jean-Michel

## Computing with Thermophysical Data

by: Maple 2016

When Maple 2016 hit the road, I finally relegated my printed Mollier charts and steam tables to a filing cabinet, and moved my carefully-curated spreadsheets of refrigerant properties to a distant part of my hard drive. The new thermophysical data engine rendered those obsolete.

Other than making my desk tidier, what I find exciting is that I can compute with fluid properties in a tool that has numerical integrators, ODE solvers, optimizers, programmatic visualisation and more.

Here are several small examples that demonstrate how you can use fluid properties with Maple’s math and visualization tools (this worksheet contains the complete examples).

## Work Done in Compressing a Gas

The work done (per unit mass) in compressing a fluid at constant temperature is

where V1 and V2 are specific volumes and p is pressure.

You need a relationship between pressure and specific volume (either theoretical or experimental) to calculate the work done.

Assuming the ideal gas law, the work done becomes

where R is the ideal gas constant, T is the temperature (in K) and M is the molecular mass (in kg mol-1), and V is the volume.

Ideal gas constant

Molecular mass of propane

Hence the work done predicted by the Ideal Gas Law is

Let’s now use real fluid properties instead and numerical integrators to compute the work done.

Here, the work done predicted with the Ideal Gas Law and real fluid properties is similar. This isn’t, however, always the case for all gases (try experimenting with ammonia – its strong intermolecular forces result in non-ideal behavior).

## Minimum Specific Heat Capacity of Water

The specific heat capacity of water varies with temperature like so.

Let's find the temperature at which the specific heat capacity of water is the lowest.

The lowest specific heat capacity occurs at 309.4 K; this is the temperature at which water requires the least energy to raise or lower its temperature.

Incidentally, this isn’t that far from the standard human body temperature of 310.1 K (given that the human body is largely water, one might hazard a guess why we have evolved to maintain this temperature).

## Temperature-Entropy Plot for Water

Maple 2016 generates pressure-enthalpy-temperature charts and psychrometric charts out of the box. However, you can create your own customized thermodynamic visualizations.

This, for example, is a temperature-entropy chart for water, together with the two-phase vapor dome (the worksheet contains the code to generate this plot).

I'm also working on a lumped-parameter heat exchanger model with fluid properties (and hence heat transfer coefficients) that change with temperature. That'll be more complex than these simple examples, and will use Maple's numeric ODE solver.

## Equivalence problem in General Relativity

by: Maple

Formulating and solving the equivalence problem for Schwarzschild metric in a simple case

In connection with the digitizing in Maple 2016 of the database of solutions to Einstein's equations of the book Exact Solutions to Einstein Field Equations. I was recently asked about a statement found in the "What is new in Physics in Maple 2016" page:

 In the Maple PDEtools package, you have the mathematical tools - including a complete symmetry approach - to work with the underlying [Einstein’s] partial differential equations. [By combining that functionality with the one in the Physics and Physics:-Tetrads package] you can also formulate and, depending on the metrics also resolve, the equivalence problem; that is: to answer whether or not, given two metrics, they can be obtained from each other by a transformation of coordinates, as well as compute the transformation.

This question posed is a reasonable one: "could you please provide one example?" This post provides that example.

First of all the existing science behind: in my opinion, the main reference regarding the equivalence problem is at the paper "A Review of the Geometrical Equivalence of Metrics in General Relativity", General Relativity and Gravitation, Vol. 12, No. 9, 1980, by A. Karlhede (University of Stockholm). This approach got refined later by others and, generally speaking, it is currently know as the Cartan-Karlhede method, summarized in chapter 9.2 of the book Exact Solutions to Einstein Field Equations. whose solutions were all digitized within the Physics and DifferentialGeometry packages for Maple 2016. This method of Chapter 9.2 (see also Tetrads and Weyl scalars in canonical form, Mapleprimes post), however, is not the only approach to the problem, and sometimes simpler methods can handle the problem faster, or just in simpler forms.

The example worked out below is actually the example from Karlhede's paper just mentioned, on pages 704 - 706: "Show that the Schwarzschild metric and its form written in terms of isotropic spherical coordinates are equivalent, and derive the transformation that relates them". Because this problem happens to be simple for nowadays computer algebra, below I also tackle it modified, slightly more difficult variants of it. The approach shown works for more complicated cases as well.

Below we tackle Karlhede's paper-problem using: one PDEtools command, the Physics:-TransformCoordinates, the Physics:-Weyl command to compute the Weyl scalars and the Physics:-Tetrads:-PetrovType to see the Petrov type of the metrics involved. The transformation resolving the equivalence is explicitly derived.

 >
 (1)

To formulate the problem, set first some symbols to represent the changed metric, changed mass and changed coordinates - no mathematics at this point

 >
 (2)

Set now a new coordinates system, call it Y, involving the new coordinates (in the paper they are represented with a tilde on top of the letters)

 >
 (3)

According to eq.(7.6) of the paper, the line element of Schwarzschild solution in isotropic spherical coordinates is given by

 >
 (4)

Set this to be the metric

 >

Check it out

 >
 (5)

In connection with the transformation used further below, compute now the Petrov type and the Weyl scalars for this metric, just to have an idea of what is behind this metric.

 >
 (6)
 >
 (7)

We see that the Weyl scalars are already in canonical form (see post in Mapleprimes about canonical forms): only  and the important thing: it depends on only one coordinate,  .

Now: we want to see if this metric (5) is equivalent to Schwarzschild metric in standard spherical coordinates

 >
 (8)

The equivalence we want to resolve is regarding an arbitrary relationship between the masses used in (5) and (8) and a generic change of variables from X to Y

 >
 (9)

Using a differential equation mindset, the formulation of the equivalence between (8) and (5) under the transformation (9) is actually simple: change variables in (8), using (9) and the Physics:-TransformCoordinates command (this is the command that changes variables in tensorial expressions), then equate the result to (5), then try to solve the problem for the unknowns ,  and .

We note at this point, however, that the Weyl scalars for Schwarzschild metric in this standard form (8) are also in canonical form of Petrov type D and also depend on only one variable, r

 >
 (10)
 >
 (11)

The fact that the Weyl scalars in both cases ((7) and (11)) are in canonical form (only  ) and in both cases this scalar depends on only one coordinate is already an indicator that the transformation involved changes only one variable in terms of the other one. So one could just search for a transformation of the form  and resolve the problem instantly. Still, to make the problem slightly more general, consider instead a generic transformation for r in terms of all of

 >
 (12)
 >
 (13)

Transform the  coordinates in the metric (because of having used PDEtools:-declare, derivatives of the unknowns R are displayed indexed, for compact notation)

 >
 (14)

Proceed equating (14) to (5) to obtain a set of equations that entirely formulates the problem

 >
 (15)

This problem, shown in Karlhede's paper as the example of the approach he summarized, is solvable using the differential equation commands of PDEtools (in this case casesplit) in one go and no time, obtaining the same solution shown in the paper with equation number (7.10), the problem actually admits two solutions

 >
 (16)

By all means this does not mean this differential equation approach is better than the general approach mentioned in the paper (also in section 9.2 of the Exact Solutions book). This presentation above only makes the point of the paragraph mentioned at the beginning of this worksheet "... [in Maple 2016] you can also formulate and, depending on the the metrics also resolve, the equivalence problem; that is: to answer whether or not, given two metrics, they can be obtained from each other by a transformation of coordinates, as well as compute the transformation."

In any case this problem above is rather easy for the computer. Consider a slightly more difficult problem, where . For example:

 >
 (17)

Tackle now the same problem

 >
 (18)

The solutions to the equivalence between (17) and (5) are then given by

 >
 (19)

Moreover, despite that the Weyl scalars suggest that a transformation of only one variable is sufficient to solve the problem, one could also consider a more general transformation, of more variables. Provided we exclude  (because there is  around and that would take us to solve differential equations for , that involve things like ), and also to speed up matters let's remove the change in , consider an arbitrary change in r and t

 >
 (20)
 >
 (21)

So our transformation now involve two arbitrary variables, each one depending on all the four coordinates, and a more complicated function . Change variables (because of having used PDEtools:-declare, derivatives of the unknowns R and  are displayed indexed, for compact notation)

 >
 (22)

Construct the set of Partial Differential Equations to be tackled

 >
 (23)

Solve the problem running a differential elimination (actually without solving any differential equations): there are more than two solutions

 >
 (24)

Consider for instance the first one

 >
 (25)

Compute the actual solution behind this case :

 >
 (26)

The fact that the time t appears defined in terms of the transformed time  involving an arbitrary constant is expected: the time does not enter the metric, it only enters through derivatives of  entering the Jacobian of the transformation used to change variables in tensorial expressions (the metric) in (22).

Summary: the approach shown above, based on formulating the problem for the transformation functions of the equivalence and solving for them the differential equations using the commands in PDEtools, after restricting the generality of the transformation functions by looking at the form of the Weyl scalars, works well for other cases too, specially now that, in Maple 2016, the Weyl scalars can be expressed also in canonical form in one go (see previous Mapleprimes post on "Tetrads and Weyl scalars in canonical form").  Also important: in Maple 2016 it is present the functionality necessary to implement the approach of section 9.2 of the Exact solutions book as well.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

## Tetrads and Weyl scalars in canonical form

by: Maple

Tetrads and Weyl scalars in canonical form

The material below is about a new development that didn't arrive in time for the launch of Maple 2016 (March) and that complements in a relevant way the ones introduced in Physics in Maple 2016. It is at topic in general relativity, the computation of a canonical form of a tetrad, so that, generally speaking (skipping a technical description) the Weyl scalars are fixed as much as possible (either equal to 0 or to 1) regarding transformations that leave invariant the tetrad metric in a tetrad system of references. Bringing a tetrad in canonical form is a relevant step in the tackling of the equivalence problem between two spacetime metrics (Mapleprimes post), and it is relevant in connection with the digitizing in Maple 2016 of the database of solutions to Einstein's equations of the book Exact Solutions to Einstein Field Equations.

The reference for this development is the book "General Relativity, an Einstein century survey", edited by S.W. Hawking (Cambridge) and W. Israel (U. Alberta, Canada), specifically Chapter 7 written by S. Chandrasekhar, and more specifically exploring what is said in page 388 about the Petrov classification.

A canonical form for the tetrad and Weyl scalars admits alternate forms; the implementation is as implicit in page 388:

 Residual invariance Petrov type I 0 1 0 none Petrov type II 0 0 1 0 none Petrov type III 0 0 0 1 0 none Petrov type D 0 0 0 0 remains invariant under rotations of Class III Petrov type N 0 0 0 0 1 remains invariant under rotations of Class II

The transformations (rotations of the tetrad system of references) used are of Class I, II and III as defined in Chandrasekar's chapter - equations (7.79) in page 384, (7.83) and (7.84) in page 385. Transformations of Class I can be performed with the command Physics:-Tetrads:-TransformTetrad using the optional argument nullrotationwithfixedl_, of Class II using nullrotationwithfixedn_ and of Class III by calling TransformTetrad(spatialrotationsm_mb_plan, boostsn_l_plane), so with the two optional arguments simultaneously.

In this development, a new optional argument, canonicalform got implemented to TransformTetrad so that the whole sequence of three transformations of Classes I, II and III is performed automatically, in one go. Regarding the canonical form of the tetrad, the main idea is that from the change in the Weyl scalars one can derive the parameters entering tetrad transformations that result in a canonical form of the tetrad.

 >
 (1)

(Note the Tetrads:-PetrovType command, unfinished in the first release of Maple 2016.) To run the following computations you need to update your Physics library to the latest version from the Maplesoft R&D Physics webpage, so with this datestamp or newer:

 >
 (2)

An Example of Petrov type I

There are six Petrov types: I, II, III, D, N and O. Start with a spacetime metric of Petrov type "I"  (the numbers always refer to the equation number in the "Exact solutions to Einstein's field equations" textbook)

 >
 (3)

The Weyl scalars

 >
 (4)

... there is abs around. Let's assume everything is positive to simplify formulas, use Capital Physics:-Assume  (the lower case assume  command redefines the assumed variables, so it is not compatible with Physics, DifferentialGeometry and VectorCalculus among others).

 >
 (5)

The scalars are now simpler, although still not in "canonical form" because  and .

 >
 (6)

The Petrov type

 >
 (7)

 >
 (8)

into another tetrad such that the Weyl scalars are in canonical form, which for Petrov "I" type happens when  and .

 >
 (9)

Despite the fact that the result is a much more complicated tetrad, this is an amazing result in that the resulting Weyl scalars are all fixed (see below).  Let's first verify that this is indeed a tetrad, and that now the Weyl scalars are in canonical form

 >
 (10)

Set (9) to be the tetrad in use and recompute the Weyl scalars

 >

Inded we now have  and

 >
 (11)

So Weyl scalars computed after setting the canonical tetrad (9) to be the tetrad in use are in canonical form. Great! NOTE: computing the canonicalWeyl scalars is not really the difficult part, and within the code, these scalars (11) are computed before arriving at the tetrad (9). What is really difficult (from the point of view of computational complexity and simplifications) is to compute the actual canonical form of the tetrad (9).

An Example of Petrov type II

Consider this other solution to Einstein's equation (again, the numbers in g_[[24,37,7]] always refer to the equation number in the "Exact solutions to Einstein's field equations" textbook)

 >
 (12)

Check the Petrov type

 >
 (13)

 >
 (14)

results in Weyl scalars not in canonical form:

 >
 (15)

For Petrov type "II", the canonical form is as for type "I" but in addition  Again let's assume positive, not necessary, but to get simpler formulas around

 >
 (16)

Compute now a canonical form for the tetrad, to be used instead of (14)

 >
 (17)

Set this tetrad and check the Weyl scalars again

 >
 >
 (18)

This result (18) is fantastic. Compare these Weyl scalars with the ones (15) before transforming the tetrad.

An Example of Petrov type III

 >
 (19)
 >
 (20)

The Petrov type and the original tetrad

 >
 (21)
 >
 (22)

This tetrad results in the following scalars

 >
 (23)

that are not in canonical form, which for Petrov type III is as in Petrov type II but in addition we should have .

Compute now a canonical form for the tetrad

 >
 (24)

Set this one to be the tetrad in use and recompute the Weyl scalars

 >
 >
 (25)

Great!

An Example of Petrov type N

 >
 (26)
 >
 (27)
 >
 (28)

The original tetrad and related Weyl scalars are not in canonical form:

 >
 (29)
 >
 (30)

For Petrov type "N", the canonical form has  and all the other .

Compute a canonical form, set it to be the tetrad in use and recompute the Weyl scalars

 >
 (31)
 >
 >
 (32)

All as expected.

An Example of Petrov type D

 >
 (33)
 >
 (34)
 >
 (35)

The default tetrad and related Weyl scalars are not in canonical form, which for Petrov type "D" is with  and all the other

 >
 (36)
 >
 (37)

Transform the  tetrad, set it and recompute the Weyl scalars

 >
 (38)
 >
 >
 (39)

Again the expected canonical form of the Weyl scalars, and  remains invariant under transformations of Class III.

An Example of Petrov type O

Finally an example of type "O". This corresponds to a conformally flat spacetime, for which the Weyl tensor (and with it all the Weyl scalars) vanishes. So the code just interrupts with "not implemented for conformally flat spactimes of Petrov type O"

 >
 (40)
 >
 (41)

The Weyl tensor and its scalars all vanish:

 >
 (42)
 >
 (43)
 >
 >

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

## Maple 2016.1 update

by: Maple 2016

An update to Maple 2016 is now available. Maple 2016.1 provides:

• Updated translations for Simplified and Traditional Chinese,  French, Greek, Japanese, Brazilian Portuguese, and Spanish
• Updates to the new Maple Workbook
• Enhancements to Maple’s context-sensitive menus
• A variety of improvements to the math engine and interface

To get this update, use Tools>Check for Updates from within Maple, or visit the Maple 2016.1 downloads page.

eithne

MapleSim 2016 provides variety of improvements to streamline the user experience, expand modeling scope, and enhance connectivity with other tools. Here are some highlights:

• Collapsible task panes provide a larger model workspace, so you can see more of your model at once.
• Improved layout ensures the tools you need for your current task are available at your fingertips.
• The expanded Multibody component library now supports contact modeling.
• A new add-on library, the MapleSim Pneumatics Library from Modelon, supports the modeling and simulation of pneumatic systems.
• The MapleSim CAD Toolbox has been extended to support the latest versions of Inventor®, NX®, SOLIDWORKS®, CATIA® V5, Solid Edge®, PTC® Creo Parametric™, and more.
• The MapleSim Connector, which provides connectivity to Simulink®, now supports single precision export of S-functions so you can run your MapleSim models on hardware that only supports single precision.