getEnergyConditions

Description

The energy conditions are evaluated point-wise for all spacetime gridpoints of the stress-energy tensor. The function only evaluates the Null Energy Condition (NEC), Weak Energy Condition (WEC), Strong Energy Condition (SEC), and Dominant Energy Condition (DEC).

Null Energy Condition (NEC)

The NEC expresses the observed energy density for null (light-ray) observers. For this to be physical, energy density must be non-negative as viewed by any light rays. The NEC is determined by:

ΞNEC(X)=Tμ^ν^(X)kμ^kν^0\Xi_{NEC}(X) = T_{\hat{\mu}\hat{\nu}}(X) k^{\hat{\mu}} k^{\hat{\nu}} \ge 0

where Tμ^ν^T_{\hat{\mu}\hat{\nu}} is the Eulerian stress-energy tensor and kμ^k^{\hat{\mu}} is a null vector field.

Weak Energy Condition (WEC)

The WEC expresses the observed energy density for timelike (matter) observers. For this to be physical, energy density must be non-negative as viewed by any timelike observer. The WEC is determined by:

ΞWEC(X)=Tμ^ν^(X)Vμ^Vν^0\Xi_{WEC}(X) = T_{\hat{\mu}\hat{\nu}}(X) V^{\hat{\mu}} V^{\hat{\nu}} \ge 0

where Tμ^ν^T_{\hat{\mu}\hat{\nu}} is the Eulerian stress-energy tensor and Vμ^V^{\hat{\mu}} is a timelike vector field.

Strong Energy Condition (SEC)

The SEC expresses the tidal effect of gravity acting on observers. For this to be physical, the gravitational tidal effect should be non-negative, i.e., matter should always gravitate toward other matter. The SEC is determined by:

ΞSEC(X)=(Tμ^ν^(X)12T(X)ημ^ν^)Vμ^Vν^0\Xi_{SEC}(X) = \left(T_{\hat{\mu}\hat{\nu}}(X) - \frac{1}{2} T(X) \eta_{\hat{\mu}\hat{\nu}} \right)V^{\hat{\mu}} V^{\hat{\nu}} \ge 0

where Tμ^ν^T_{\hat{\mu}\hat{\nu}} is the Eulerian stress-energy tensor, ημ^ν^\eta_{\hat{\mu}\hat{\nu}} is the Minkowski metric, and Vμ^V^{\hat{\mu}} is a timelike vector field.

Dominant Energy Condition (DEC)

The DEC expresses the velocity of observed matter flow. For this to be physical, the matter should not be seen flowing faster than light by any timelike observer.

Υμ^(X)=T  ν^μ^(X)Vν^\Upsilon^{\hat{\mu}}(X) = -T^{\hat{\mu}}_{\ \ \hat{\nu}}(X) V^{\hat{\nu}}

where T  ν^μ^T^{\hat{\mu}}_{\ \ \hat{\nu}} is the mixed form of the Eulerian stress-energy tensor and Vμ^V^{\hat{\mu}} is a timelike vector field. The energy condition is for this to be future pointing, so this is further evaluated as:

ξD(X)=ημ^ν^Υμ^(X)Υν^(X)0\xi_D(X) = \eta_{\hat{\mu}\hat{\nu}} \Upsilon^{\hat{\mu}}(X) \Upsilon^{\hat{\nu}}(X) \le 0

which is the returned energy condition. The value returned is additionally flipped in sign such that violations are negative values, so as to match the returns of other energy conditions.

For more general background on the energy conditions, please read:

Method

The evaluation of the point-wise energy conditions samples a set of observer vector fields. The null vector is defined within a Cartesian locally-Minkowskian space. The direction of the spatial velocity is sampled from a set of vectors that map to evenly distributed points on a sphere, which, in a spherical coordinate representation, result in the set of four-velocities that map to different observers. The resulting vectors for each observer are then normalized. For timelike vectors, the four-velocity is defined in the same manner but is additionally scaled from 0 to 1 for a specified number of timelike samples for each of the spatial velocity direction samples. All vectors are then normalized.

Syntax

[map, vec, vectorFieldOut] = getEnergyConditions(energyTensor, metric, condition, numAngularVec, numTimeVec, returnVec, tryGPU)

Input Arguments

blue are required inputs.

orange are optional inputs with native default values.

InputsFormatTypeDescription

energyTensor

struct

object

Input stress-energy tensor to determine energy conditions.

metric

struct

object

Input metric which determined the stress-energy tensor.

condition

1x1 array

string

The selected energy condition. Can be either "Null", "Weak", "Strong", or "Dominant".

numAngularVec

1x1 array

integer

The set number of even-spaced angular samples of four-velocity orientations. This sets the number of directions to sample.

numTimeVec

1x1 array

integer

The set number of time samples. This evenly reduces the magnitude of the four-velocity spatial part in the given sample number. The default value is 10.

returnVec

1x1 array

integer

Return the vectors and each of their respective energy condition evaluation results. The default value is 0.

tryGPU

1x1 array

integer

Use the GPU for evaluations, input either 1 for true or 0 for false. The default value is 0.

Output Arguments

OutputsFormatTypeDescription

map

4D array

double

Returned energy condition at each spacetime grid point. The array format is specified as:

[x0,x1,x2,x3][x_0, x_1, x_2, x_3]

where xμx_\muis the spacetime dimension.

vec

6D array

double

The energy condition evaluation for each of the sampled vectors at each spacetime grid point. The array format is specified as:

[x0,x1,x2,x3,Nang,Ntime][x_0, x_1, x_2, x_3, N_{ang}, N_{time}]

where xμx_\mu is the spacetime dimensions, NangN_{ang} is the angular samples, and NtimeN_{time} is the time samples.

This is only returned if returnVec is not 0.

vectorFieldOut

3D or 4D array

double

The set of observer 4-vectors that are used to sample the energy conditions at each point in spacetime. If the energy condition requires a null vector field then the return is a 3D array specified as:

[nobs,Nang][n_{obs}, N_{ang}]

where nobsn_{obs} is the observer four-velocity (length of 4) and NangN_{ang} is the length of the angular samples. If the energy condition requires a timelike vector field, then the return is a 4D array specified as:

[nobs,Nang,Ntime][n_{obs}, N_{ang}, N_{time}]

where NtimeN_{time} is the length of the time samples.

This is only returned if returnVec is not 0.

Last updated