escript  Revision_
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
escript Namespace Reference

Namespaces

 DataTypes
 Contains the types to represent Shapes, Regions, RegionLoop ranges and vectors of data as well as the functions to manipulate them.
 
 reducerstatus
 

Classes

struct  AbsMax
 Return the absolute maximum value of the two given values. More...
 
class  AbstractContinuousDomain
 AbstractContinuousDomain, base class for continuous domains. More...
 
class  AbstractDomain
 Base class for all escript domains. More...
 
class  AbstractReducer
 
class  AbstractSystemMatrix
 Base class for escript system matrices. More...
 
class  AbstractTransportProblem
 Give a short description of what AbstractTransportProblem does. More...
 
class  AssertException
 An exception class for assertions within escript. More...
 
class  Data
 Data represents a collection of datapoints. More...
 
class  DataAbstract
 
class  DataConstant
 DataConstant stores a single data point which represents the entire function space. More...
 
class  DataEmpty
 Implements the DataAbstract interface for an empty Data object. More...
 
class  DataException
 
class  DataExpanded
 Give a short description of what DataExpanded does. More...
 
class  DataLazy
 Wraps an expression tree of other DataObjects. The data will be evaluated when required. More...
 
class  DataReady
 
class  DataTagged
 Simulates a full dataset accessible via sampleNo and dataPointNo. More...
 
struct  Distribution
 
class  DomainException
 
class  EscriptParams
 
class  EsysException
 The base class for escript exceptions. More...
 
class  FileWriter
 
struct  FMax
 Return the maximum value of the two given values. More...
 
struct  FMin
 Return the minimum value of the two given values. More...
 
class  FunctionSpace
 
class  FunctionSpaceException
 
struct  IndexList
 
class  IOError
 An exception class for Input/Output errors. More...
 
class  JMPI_
 
class  LapackInverseHelper
 
class  MPIDataReducer
 
class  MPIScalarReducer
 
class  NoCOMM_WORLD
 
class  NonReducedVariable
 
class  NotImplementedError
 An exception class for features which are not (yet) implemented. More...
 
class  NullDomain
 NullDomain provides a null value for domain. Needed for the construction of a default FunctionSpace. More...
 
class  SolverBuddy
 
class  SplitWorld
 
class  SplitWorldException
 
class  SubWorld
 
class  SystemMatrixException
 SystemMatrixException exception class. More...
 
class  Taipan
 Taipan array manager, C++ version. Based on TaipanMemManager C module by Lutz Gross. More...
 
class  TestDomain
 (Testing use only) Provides a domain to wrap a collection of values. More...
 
class  TransportProblemException
 
class  ValueError
 An exception class that signals an invalid argument value. More...
 
class  WrappedArray
 

Typedefs

typedef boost::shared_ptr< AbstractDomainDomain_ptr
 
typedef boost::shared_ptr< const AbstractDomainconst_Domain_ptr
 
typedef boost::shared_ptr< AbstractReducerReducer_ptr
 
typedef boost::shared_ptr< AbstractSystemMatrixASM_ptr
 
typedef boost::shared_ptr< const AbstractSystemMatrixconst_ASM_ptr
 
typedef boost::shared_ptr< AbstractTransportProblemATP_ptr
 
typedef boost::shared_ptr< DataAbstractDataAbstract_ptr
 
typedef boost::shared_ptr< const DataAbstractconst_DataAbstract_ptr
 
typedef boost::shared_ptr< DataReadyDataReady_ptr
 
typedef boost::shared_ptr< const DataReadyconst_DataReady_ptr
 
typedef boost::shared_ptr< DataLazyDataLazy_ptr
 
typedef boost::shared_ptr< const DataLazyconst_DataLazy_ptr
 
typedef boost::shared_ptr< DistributionDistribution_ptr
 
typedef boost::shared_ptr< const Distributionconst_Distribution_ptr
 
typedef int(* binOpFnPtr) (double *, const double *, const double *, int, int, int)
 
typedef boost::shared_ptr< JMPI_JMPI
 
typedef boost::shared_ptr< SolverBuddySB_ptr
 
typedef boost::shared_ptr< SubWorldSubWorld_ptr
 

Enumerations

enum  ES_optype {
  UNKNOWNOP =0, IDENTITY =1, ADD =2, SUB =3,
  MUL =4, DIV =5, POW =6, SIN =POW+1,
  COS =SIN+1, TAN =SIN+2, ASIN =SIN+3, ACOS =SIN+4,
  ATAN =SIN+5, SINH =SIN+6, COSH =SIN+7, TANH =SIN+8,
  ERF =SIN+9, ASINH =SIN+10, ACOSH =SIN+11, ATANH =SIN+12,
  LOG10 =ATANH+1, LOG =LOG10+1, SIGN =LOG10+2, ABS =LOG10+3,
  NEG =LOG10+4, POS =LOG10+5, EXP =LOG10+6, SQRT =LOG10+7,
  RECIP =LOG10+8, GZ =RECIP+1, LZ =GZ+1, GEZ =GZ+2,
  LEZ =GZ+3, NEZ =GZ+4, EZ =GZ+5, SYM =EZ+1,
  NSYM =SYM+1, PROD =NSYM+1, TRANS =PROD+1, TRACE =TRANS+1,
  SWAP =TRACE+1, MINVAL =SWAP+1, MAXVAL =MINVAL+1, CONDEVAL =MAXVAL+1,
  HER =CONDEVAL+1, NHER =HER+1, REAL =NHER+1, IMAG =REAL+1,
  CONJ =IMAG+1, LESS =CONJ+1, GREATER =LESS+1, GREATER_EQUAL =GREATER+1,
  LESS_EQUAL =GREATER_EQUAL+1
}
 
enum  ES_opgroup {
  G_UNKNOWN, G_IDENTITY, G_BINARY, G_UNARY,
  G_UNARY_P, G_UNARY_R, G_NP1OUT, G_NP1OUT_P,
  G_TENSORPROD, G_NP1OUT_2P, G_REDUCTION, G_CONDEVAL
}
 
enum  SolverOptions {
  SO_DEFAULT, SO_TARGET_CPU, SO_TARGET_GPU, SO_PACKAGE_CUSP,
  SO_PACKAGE_MKL, SO_PACKAGE_PASO, SO_PACKAGE_TRILINOS, SO_PACKAGE_UMFPACK,
  SO_METHOD_BICGSTAB, SO_METHOD_CGLS, SO_METHOD_CGS, SO_METHOD_CHOLEVSKY,
  SO_METHOD_CR, SO_METHOD_DIRECT, SO_METHOD_DIRECT_MUMPS, SO_METHOD_DIRECT_PARDISO,
  SO_METHOD_DIRECT_SUPERLU, SO_METHOD_DIRECT_TRILINOS, SO_METHOD_GMRES, SO_METHOD_HRZ_LUMPING,
  SO_METHOD_ITERATIVE, SO_METHOD_LSQR, SO_METHOD_MINRES, SO_METHOD_NONLINEAR_GMRES,
  SO_METHOD_PCG, SO_METHOD_PRES20, SO_METHOD_ROWSUM_LUMPING, SO_METHOD_TFQMR,
  SO_PRECONDITIONER_AMG, SO_PRECONDITIONER_AMLI, SO_PRECONDITIONER_BOOMERAMG, SO_PRECONDITIONER_GAUSS_SEIDEL,
  SO_PRECONDITIONER_ILU0, SO_PRECONDITIONER_ILUT, SO_PRECONDITIONER_JACOBI, SO_PRECONDITIONER_NONE,
  SO_PRECONDITIONER_REC_ILU, SO_PRECONDITIONER_RILU, SO_ODESOLVER_BACKWARD_EULER, SO_ODESOLVER_CRANK_NICOLSON,
  SO_ODESOLVER_LINEAR_CRANK_NICOLSON, SO_INTERPOLATION_CLASSIC, SO_INTERPOLATION_CLASSIC_WITH_FF_COUPLING, SO_INTERPOLATION_DIRECT,
  SO_COARSENING_AGGREGATION, SO_COARSENING_CIJP, SO_COARSENING_CIJP_FIXED_RANDOM, SO_COARSENING_FALGOUT,
  SO_COARSENING_HMIS, SO_COARSENING_PMIS, SO_COARSENING_RUGE_STUEBEN, SO_COARSENING_STANDARD,
  SO_COARSENING_YAIR_SHAPIRA, SO_REORDERING_DEFAULT, SO_REORDERING_MINIMUM_FILL_IN, SO_REORDERING_NESTED_DISSECTION,
  SO_REORDERING_NONE
}
 

Functions

Data operator* (const AbstractSystemMatrix &left, const Data &right)
 
bool supports_cplx (escript::ES_optype operation)
 
bool always_real (escript::ES_optype operation)
 
DataTypes::real_t fsign (DataTypes::real_t x)
 
bool nancheck (DataTypes::real_t d)
 acts as a wrapper to isnan. More...
 
DataTypes::real_t makeNaN ()
 returns a NaN. More...
 
void eigenvalues1 (const DataTypes::real_t A00, DataTypes::real_t *ev0)
 solves a 1x1 eigenvalue A*V=ev*V problem More...
 
void eigenvalues1 (const DataTypes::cplx_t A00, DataTypes::cplx_t *ev0)
 
template<class T >
void eigenvalues2 (const T A00, const T A01, const T A11, T *ev0, T *ev1)
 solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A More...
 
void eigenvalues3 (const DataTypes::real_t A00, const DataTypes::real_t A01, const DataTypes::real_t A02, const DataTypes::real_t A11, const DataTypes::real_t A12, const DataTypes::real_t A22, DataTypes::real_t *ev0, DataTypes::real_t *ev1, DataTypes::real_t *ev2)
 solves a 3x3 eigenvalue A*V=ev*V problem for symmetric A More...
 
void eigenvalues_and_eigenvectors1 (const DataTypes::real_t A00, DataTypes::real_t *ev0, DataTypes::real_t *V00, const DataTypes::real_t tol)
 solves a 1x1 eigenvalue A*V=ev*V problem for symmetric A More...
 
void vectorInKernel2 (const DataTypes::real_t A00, const DataTypes::real_t A10, const DataTypes::real_t A01, const DataTypes::real_t A11, DataTypes::real_t *V0, DataTypes::real_t *V1)
 returns a non-zero vector in the kernel of [[A00,A01],[A01,A11]] assuming that the kernel dimension is at least 1. More...
 
void vectorInKernel3__nonZeroA00 (const DataTypes::real_t A00, const DataTypes::real_t A10, const DataTypes::real_t A20, const DataTypes::real_t A01, const DataTypes::real_t A11, const DataTypes::real_t A21, const DataTypes::real_t A02, const DataTypes::real_t A12, const DataTypes::real_t A22, DataTypes::real_t *V0, DataTypes::real_t *V1, DataTypes::real_t *V2)
 returns a non-zero vector in the kernel of [[A00,A01,A02],[A10,A11,A12],[A20,A21,A22]] assuming that the kernel dimension is at least 1 and A00 is non zero. More...
 
void eigenvalues_and_eigenvectors2 (const DataTypes::real_t A00, const DataTypes::real_t A01, const DataTypes::real_t A11, DataTypes::real_t *ev0, DataTypes::real_t *ev1, DataTypes::real_t *V00, DataTypes::real_t *V10, DataTypes::real_t *V01, DataTypes::real_t *V11, const DataTypes::real_t tol)
 solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A. Eigenvectors are ordered by increasing value and eigen vectors are normalizeVector3d such that length is zero and first non-zero component is positive. More...
 
void normalizeVector3 (DataTypes::real_t *V0, DataTypes::real_t *V1, DataTypes::real_t *V2)
 nomalizes a 3-d vector such that length is one and first non-zero component is positive. More...
 
void eigenvalues_and_eigenvectors3 (const DataTypes::real_t A00, const DataTypes::real_t A01, const DataTypes::real_t A02, const DataTypes::real_t A11, const DataTypes::real_t A12, const DataTypes::real_t A22, DataTypes::real_t *ev0, DataTypes::real_t *ev1, DataTypes::real_t *ev2, DataTypes::real_t *V00, DataTypes::real_t *V10, DataTypes::real_t *V20, DataTypes::real_t *V01, DataTypes::real_t *V11, DataTypes::real_t *V21, DataTypes::real_t *V02, DataTypes::real_t *V12, DataTypes::real_t *V22, const DataTypes::real_t tol)
 solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A. Eigenvectors are ordered by increasing value and eigen vectors are normalizeVector3d such that length is zero and first non-zero component is positive. More...
 
template<class LEFT , class RIGHT , class RES >
void matrix_matrix_product (const int SL, const int SM, const int SR, const LEFT *A, const RIGHT *B, RES *C, int transpose)
 
DataTypes::real_t calc_erf (DataTypes::real_t x)
 
DataTypes::cplx_t calc_erf (DataTypes::cplx_t x)
 
DataTypes::real_t calc_sign (DataTypes::real_t x)
 
DataTypes::cplx_t calc_sign (DataTypes::cplx_t x)
 
DataTypes::real_t calc_acos (DataTypes::real_t x)
 
DataTypes::cplx_t calc_acos (DataTypes::cplx_t x)
 
escript::DataTypes::real_t fabs (const escript::DataTypes::cplx_t c)
 
DataTypes::real_t calc_gtzero (const DataTypes::real_t &x)
 
DataTypes::cplx_t calc_gtzero (const DataTypes::cplx_t &x)
 
DataTypes::real_t calc_gezero (const DataTypes::real_t &x)
 
DataTypes::cplx_t calc_gezero (const DataTypes::cplx_t &x)
 
DataTypes::real_t calc_ltzero (const DataTypes::real_t &x)
 
DataTypes::cplx_t calc_ltzero (const DataTypes::cplx_t &x)
 
DataTypes::real_t calc_lezero (const DataTypes::real_t &x)
 
DataTypes::cplx_t calc_lezero (const DataTypes::cplx_t &x)
 
template<typename IN >
DataTypes::real_t abs_f (IN i)
 
template<>
DataTypes::real_t abs_f (DataTypes::cplx_t i)
 
template<class IN >
void tensor_unary_array_operation_real (const size_t size, const IN *arg1, DataTypes::real_t *argRes, escript::ES_optype operation, DataTypes::real_t tol=0)
 
template<typename OUT , typename IN >
OUT conjugate (const IN i)
 
template<>
DataTypes::real_t conjugate (const DataTypes::real_t r)
 
template<class IN , typename OUT >
void tensor_unary_array_operation (const size_t size, const IN *arg1, OUT *argRes, escript::ES_optype operation, DataTypes::real_t tol=0)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperCCC (DataConstant &res, const DataConstant &left, const DataConstant &right, escript::ES_optype operation)
 
void binaryOpDataCCC (DataConstant &result, const DataConstant &left, const DataConstant &right, escript::ES_optype operation)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperTCT (DataTagged &res, const DataConstant &left, const DataTagged &right, escript::ES_optype operation)
 
void binaryOpDataTCT (DataTagged &result, const DataConstant &left, const DataTagged &right, escript::ES_optype operation)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperECE (DataExpanded &res, const DataConstant &left, const DataExpanded &right, escript::ES_optype operation)
 
void binaryOpDataECE (DataExpanded &result, const DataConstant &left, const DataExpanded &right, escript::ES_optype operation)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperEET (DataExpanded &res, const DataExpanded &left, const DataTagged &right, escript::ES_optype operation)
 
void binaryOpDataEET (DataExpanded &result, const DataExpanded &left, const DataTagged &right, escript::ES_optype operation)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperETE (DataExpanded &res, const DataTagged &left, const DataExpanded &right, escript::ES_optype operation)
 
void binaryOpDataETE (DataExpanded &result, const DataTagged &left, const DataExpanded &right, escript::ES_optype operation)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperTTC (DataTagged &res, const DataTagged &left, const DataConstant &right, escript::ES_optype operation)
 
void binaryOpDataTTC (DataTagged &result, const DataTagged &left, const DataConstant &right, escript::ES_optype operation)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperTTT (DataTagged &res, const DataTagged &left, const DataTagged &right, escript::ES_optype operation)
 
void binaryOpDataTTT (DataTagged &result, const DataTagged &left, const DataTagged &right, escript::ES_optype operation)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperEEC (DataExpanded &res, const DataExpanded &left, const DataConstant &right, escript::ES_optype operation)
 
void binaryOpDataEEC (DataExpanded &result, const DataExpanded &left, const DataConstant &right, escript::ES_optype operation)
 
template<class ResSCALAR , class LSCALAR , class RSCALAR >
void binaryOpDataReadyHelperEEE (DataExpanded &res, const DataExpanded &left, const DataExpanded &right, escript::ES_optype operation)
 
void binaryOpDataEEE (DataExpanded &result, const DataExpanded &left, const DataExpanded &right, escript::ES_optype operation)
 
Data condEval (escript::Data &mask, escript::Data &trueval, escript::Data &falseval)
 
Data randomData (const boost::python::tuple &shape, const FunctionSpace &what, long seed, const boost::python::tuple &filter)
 Create a new Expanded Data object filled with pseudo-random data. More...
 
DataTypes::real_t rpow (DataTypes::real_t x, DataTypes::real_t y)
 
Data operator+ (const Data &left, const Data &right)
 Operator+ Takes two Data objects. More...
 
Data operator- (const Data &left, const Data &right)
 Operator- Takes two Data objects. More...
 
Data operator* (const Data &left, const Data &right)
 Operator* Takes two Data objects. More...
 
Data operator/ (const Data &left, const Data &right)
 Operator/ Takes two Data objects. More...
 
Data operator+ (const Data &left, const boost::python::object &right)
 Operator+ Takes LHS Data object and RHS python::object. python::object must be convertable to Data type. More...
 
Data operator- (const Data &left, const boost::python::object &right)
 Operator- Takes LHS Data object and RHS python::object. python::object must be convertable to Data type. More...
 
Data operator* (const Data &left, const boost::python::object &right)
 Operator* Takes LHS Data object and RHS python::object. python::object must be convertable to Data type. More...
 
Data operator/ (const Data &left, const boost::python::object &right)
 Operator/ Takes LHS Data object and RHS python::object. python::object must be convertable to Data type. More...
 
Data operator+ (const boost::python::object &left, const Data &right)
 Operator+ Takes LHS python::object and RHS Data object. python::object must be convertable to Data type. More...
 
Data operator- (const boost::python::object &left, const Data &right)
 Operator- Takes LHS python::object and RHS Data object. python::object must be convertable to Data type. More...
 
Data operator* (const boost::python::object &left, const Data &right)
 Operator* Takes LHS python::object and RHS Data object. python::object must be convertable to Data type. More...
 
Data operator/ (const boost::python::object &left, const Data &right)
 Operator/ Takes LHS python::object and RHS Data object. python::object must be convertable to Data type. More...
 
std::ostream & operator<< (std::ostream &o, const Data &data)
 Output operator. More...
 
Data C_GeneralTensorProduct (Data &arg_0, Data &arg_1, int axis_offset=0, int transpose=0)
 Compute a tensor product of two Data objects. More...
 
Data C_TensorBinaryOperation (Data const &arg_0, Data const &arg_1, ES_optype operation)
 Compute a tensor operation with two Data objects. More...
 
Data C_TensorUnaryOperation (Data const &arg_0, escript::ES_optype operation, DataTypes::real_t tol=0)
 
Data Scalar (double value, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 A collection of factory functions for creating Data objects which contain data points of various shapes. More...
 
Data Vector (double value, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 Return a Data object containing vector data-points. ie: rank 1 data-points. More...
 
Data VectorFromObj (bp::object o, const FunctionSpace &what, bool expanded)
 
Data Tensor (double value, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 Return a Data object containing tensor datapoints. ie: rank 2 data-points. More...
 
Data TensorFromObj (bp::object o, const FunctionSpace &what, bool expanded)
 
Data Tensor3 (double value, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 Return a Data object containing tensor3 datapoints. ie: rank 3 data-points. More...
 
Data Tensor3FromObj (bp::object o, const FunctionSpace &what, bool expanded)
 
Data Tensor4 (double value, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 Return a Data object containing tensor4 datapoints. ie: rank 4 data-points. More...
 
Data Tensor4FromObj (bp::object o, const FunctionSpace &what, bool expanded)
 
Data load (const std::string fileName, const AbstractDomain &domain)
 reads Data on domain from file in netCDF format More...
 
bool loadConfigured ()
 returns true if the load funtion is configured. More...
 
Data convertToData (const bp::object &value, const FunctionSpace &what)
 
Data VectorFromObj (boost::python::object o, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 
Data TensorFromObj (boost::python::object o, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 
Data Tensor3FromObj (boost::python::object o, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 
Data Tensor4FromObj (boost::python::object o, const FunctionSpace &what=FunctionSpace(), bool expanded=false)
 
Data convertToData (const boost::python::object &value, const FunctionSpace &what=FunctionSpace())
 Tries to convert value into a Data object on FunctionSpace what. If value is already a Data object, the object is returned if it is defined on what otherwise interpolated data of values are returned. If value is not a data object it is tried to generate the corresponding data object. escript::DataEmpty() is returned if value is identified as empty. More...
 
void matMult (const DataTypes::RealVectorType &left, const DataTypes::ShapeType &leftShape, DataTypes::RealVectorType::size_type leftOffset, const DataTypes::RealVectorType &right, const DataTypes::ShapeType &rightShape, DataTypes::RealVectorType::size_type rightOffset, DataTypes::RealVectorType &result, const DataTypes::ShapeType &resultShape)
 Perform a matrix multiply of the given views. More...
 
DataTypes::ShapeType determineResultShape (const DataTypes::ShapeType &left, const DataTypes::ShapeType &right)
 Determine the shape of the result array for a matrix multiplication of the given views. More...
 
void matrixInverseError (int err)
 throws an appropriate exception based on failure of matrix_inverse. More...
 
int matrix_inverse (const DataTypes::RealVectorType &in, const DataTypes::ShapeType &inShape, DataTypes::RealVectorType::size_type inOffset, DataTypes::RealVectorType &out, const DataTypes::ShapeType &outShape, DataTypes::RealVectorType::size_type outOffset, int count, LapackInverseHelper &helper)
 computes the inverses of square (up to 3x3) matricies More...
 
template<>
void binaryOpVectorTagged (DataTypes::RealVectorType &res, const typename DataTypes::RealVectorType::size_type samplesToProcess, const typename DataTypes::RealVectorType::size_type DPPSample, const typename DataTypes::RealVectorType::size_type DPSize, const DataTypes::RealVectorType &left, const bool leftscalar, const DataTypes::RealVectorType &right, const bool rightscalar, const bool lefttagged, const DataTagged &tagsource, escript::ES_optype operation)
 
template<>
void binaryOpVectorRightScalar (DataTypes::RealVectorType &res, typename DataTypes::RealVectorType::size_type resOffset, const typename DataTypes::RealVectorType::size_type samplesToProcess, const typename DataTypes::RealVectorType::size_type sampleSize, const DataTypes::RealVectorType &left, typename DataTypes::RealVectorType::size_type leftOffset, const DataTypes::real_t *right, const bool rightreset, escript::ES_optype operation, bool singleleftsample)
 
template<>
void binaryOpVectorLeftScalar (DataTypes::RealVectorType &res, typename DataTypes::RealVectorType::size_type resOffset, const typename DataTypes::RealVectorType::size_type samplesToProcess, const typename DataTypes::RealVectorType::size_type sampleSize, const DataTypes::real_t *left, const bool leftreset, const DataTypes::RealVectorType &right, typename DataTypes::RealVectorType::size_type rightOffset, escript::ES_optype operation, bool singlerightsample)
 
template<>
void binaryOpVector (DataTypes::RealVectorType &res, typename DataTypes::RealVectorType::size_type resOffset, const typename DataTypes::RealVectorType::size_type samplesToProcess, const typename DataTypes::RealVectorType::size_type sampleSize, const DataTypes::RealVectorType &left, typename DataTypes::RealVectorType::size_type leftOffset, const bool leftreset, const DataTypes::RealVectorType &right, typename DataTypes::RealVectorType::size_type rightOffset, const bool rightreset, escript::ES_optype operation)
 
void hermitian (const DataTypes::CplxVectorType &in, const DataTypes::ShapeType &inShape, DataTypes::CplxVectorType::size_type inOffset, DataTypes::CplxVectorType &ev, const DataTypes::ShapeType &evShape, DataTypes::CplxVectorType::size_type evOffset)
 computes an hermitian matrix from your square matrix A: (A + adjoint(A)) / 2 More...
 
void antihermitian (const DataTypes::CplxVectorType &in, const DataTypes::ShapeType &inShape, typename DataTypes::CplxVectorType::size_type inOffset, DataTypes::CplxVectorType &ev, const DataTypes::ShapeType &evShape, typename DataTypes::CplxVectorType::size_type evOffset)
 computes a antihermitian matrix from your square matrix A: (A - adjoint(A)) / 2 More...
 
template<typename VEC >
void symmetric (const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset)
 computes a symmetric matrix from your square matrix A: (A + transpose(A)) / 2 More...
 
template<typename VEC >
void antisymmetric (const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset)
 computes a antisymmetric matrix from your square matrix A: (A - transpose(A)) / 2 More...
 
template<class VEC >
void trace (const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset, int axis_offset)
 computes the trace of a matrix More...
 
template<class VEC >
void transpose (const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset, int axis_offset)
 Transpose each data point of this Data object around the given axis. More...
 
template<class VEC >
void swapaxes (const VEC &in, const DataTypes::ShapeType &inShape, typename VEC::size_type inOffset, VEC &ev, const DataTypes::ShapeType &evShape, typename VEC::size_type evOffset, int axis0, int axis1)
 swaps the components axis0 and axis1. More...
 
void eigenvalues (const DataTypes::RealVectorType &in, const DataTypes::ShapeType &inShape, typename DataTypes::RealVectorType::size_type inOffset, DataTypes::RealVectorType &ev, const DataTypes::ShapeType &evShape, typename DataTypes::RealVectorType::size_type evOffset)
 solves a local eigenvalue problem More...
 
void eigenvalues_and_eigenvectors (const DataTypes::RealVectorType &in, const DataTypes::ShapeType &inShape, DataTypes::RealVectorType::size_type inOffset, DataTypes::RealVectorType &ev, const DataTypes::ShapeType &evShape, DataTypes::RealVectorType::size_type evOffset, DataTypes::RealVectorType &V, const DataTypes::ShapeType &VShape, DataTypes::RealVectorType::size_type VOffset, const double tol=1.e-13)
 solves a local eigenvalue problem More...
 
template<class VEC >
bool checkOffset (const VEC &data, const DataTypes::ShapeType &shape, typename VEC::size_type offset)
 
template<class ResVEC , class LVEC , class RSCALAR >
void binaryOpVectorRightScalar (ResVEC &res, typename ResVEC::size_type resOffset, const typename ResVEC::size_type samplesToProcess, const typename ResVEC::size_type sampleSize, const LVEC &left, typename LVEC::size_type leftOffset, const RSCALAR *right, const bool rightreset, escript::ES_optype operation, bool singleleftsample)
 
template<class ResVEC , class LSCALAR , class RVEC >
void binaryOpVectorLeftScalar (ResVEC &res, typename ResVEC::size_type resOffset, const typename ResVEC::size_type samplesToProcess, const typename ResVEC::size_type sampleSize, const LSCALAR *left, const bool leftreset, const RVEC &right, typename RVEC::size_type rightOffset, escript::ES_optype operation, bool singlerightsample)
 
template<class ResVEC , class LVEC , class RVEC >
void binaryOpVector (ResVEC &res, typename ResVEC::size_type resOffset, const typename ResVEC::size_type samplesToProcess, const typename ResVEC::size_type sampleSize, const LVEC &left, typename LVEC::size_type leftOffset, const bool leftreset, const RVEC &right, typename RVEC::size_type rightOffset, const bool rightreset, escript::ES_optype operation)
 
template<class ResELT , class LELT , class RELT >
void binaryOpVectorLazyHelper (ResELT *res, const LELT *left, const RELT *right, const size_t chunksize, const size_t onumsteps, const size_t numsteps, const size_t resultStep, const size_t leftstep, const size_t rightstep, const size_t oleftstep, const size_t orightstep, size_t lroffset, size_t rroffset, escript::ES_optype operation)
 
template<class ResVEC , class LVEC , class RVEC >
void binaryOpVectorTagged (ResVEC &res, const typename ResVEC::size_type samplesToProcess, const typename ResVEC::size_type DPPSample, const typename ResVEC::size_type DPSize, const LVEC &left, bool leftscalar, const RVEC &right, bool rightscalar, bool lefttagged, const DataTagged &tagsource, escript::ES_optype operation)
 
template<class BinaryFunction >
DataTypes::real_t reductionOpVector (const DataTypes::RealVectorType &left, const DataTypes::ShapeType &leftShape, DataTypes::RealVectorType::size_type offset, BinaryFunction operation, DataTypes::real_t initial_value)
 Perform the given data point reduction operation on the data point specified by the given offset into the view. Reduces all elements of the data point using the given operation, returning the result as a scalar. Operation must be a pointer to a function. More...
 
bool vectorHasNaN (const DataTypes::RealVectorType &in, DataTypes::RealVectorType::size_type inOffset, size_t count)
 returns true if the vector contains NaN More...
 
binOpFnPtr binOpFnPtrFromVoidPtr (void *v)
 
void * voidPtrFromBinOpFnPtr (binOpFnPtr f)
 
const std::string & opToString (ES_optype op)
 
ES_opgroup getOpgroup (ES_optype op)
 
void setEscriptParamInt (const std::string &name, int value)
 Set the value of a named parameter. See listEscriptParams() for available parameters. More...
 
int getEscriptParamInt (const std::string &name, int sentinel=0)
 get the value of a named parameter. See listEscriptParams() for available parameters. More...
 
boost::python::list listEscriptParams ()
 describe available parameters. More...
 
bool hasFeature (const std::string &name)
 returns true if escript was compiled with the feature name, false otherwise. More...
 
boost::python::list listFeatures ()
 returns a list of features escript was compiled with. More...
 
JMPI makeInfo (MPI_Comm comm, bool owncom)
 
bool checkResult (int input, int &output, const JMPI &comm)
 Everyone puts in their error code and everyone gets the largest one. More...
 
bool shipString (const char *src, char **dest, MPI_Comm &comm)
 
int getSubWorldTag ()
 tag reserved for use by SubWorld code This value should be higher than the modulus used in JMPI_::setCounter. Apart from that, its value is not particularly significant. More...
 
double gettime ()
 returns the current ticks for timing More...
 
void AssertionErrorTranslator (const EsysException &e)
 Function which translates an EsysException into a python AssertionError. More...
 
void IOErrorTranslator (const EsysException &e)
 Function which translates an EsysException into a python IOError. More...
 
void NotImplementedErrorTranslator (const EsysException &e)
 Function which translates an EsysException into a python NotImplementedError. More...
 
void RuntimeErrorTranslator (const EsysException &e)
 Function which translates an EsysException into a python RuntimeError. More...
 
void ValueErrorTranslator (const EsysException &e)
 Function which translates an EsysException into a python ValueError. More...
 
bool canInterpolate (FunctionSpace src, FunctionSpace dest)
 
FunctionSpace continuousFunction (const AbstractDomain &domain)
 Create function space objects. More...
 
FunctionSpace reducedContinuousFunction (const AbstractDomain &domain)
 Return a continuous with reduced order FunctionSpace (overlapped node values on reduced element order) More...
 
FunctionSpace function (const AbstractDomain &domain)
 Return a function FunctionSpace. More...
 
FunctionSpace reducedFunction (const AbstractDomain &domain)
 Return a function FunctionSpace with reduced integration order. More...
 
FunctionSpace functionOnBoundary (const AbstractDomain &domain)
 Return a function on boundary FunctionSpace. More...
 
FunctionSpace reducedFunctionOnBoundary (const AbstractDomain &domain)
 Return a function on boundary FunctionSpace with reduced integration order. More...
 
FunctionSpace functionOnContactZero (const AbstractDomain &domain)
 Return a FunctionSpace on left side of contact. More...
 
FunctionSpace reducedFunctionOnContactZero (const AbstractDomain &domain)
 Return a FunctionSpace on left side of contact with reduced integration order. More...
 
FunctionSpace functionOnContactOne (const AbstractDomain &domain)
 Return a FunctionSpace on right side of contact. More...
 
FunctionSpace reducedFunctionOnContactOne (const AbstractDomain &domain)
 Return a FunctionSpace on right side of contact with reduced integration order. More...
 
FunctionSpace solution (const AbstractDomain &domain)
 Return a FunctionSpace. More...
 
FunctionSpace reducedSolution (const AbstractDomain &domain)
 Return a FunctionSpace with reduced integration order. More...
 
FunctionSpace diracDeltaFunctions (const AbstractDomain &domain)
 Return a FunctionSpace. More...
 
Reducer_ptr makeDataReducer (std::string type)
 
Reducer_ptr makeScalarReducer (std::string type)
 
Reducer_ptr makeNonReducedVariable ()
 
void getStringFromPyException (boost::python::error_already_set e, std::string &errormsg)
 
void randomFillArray (long seed, double *array, size_t n)
 
void patternFillArray2D (size_t x, size_t y, double *array, size_t spacing, size_t basex, size_t basey, size_t numpoints)
 
void patternFillArray (int pattern, size_t x, size_t y, size_t z, double *array, size_t spacing, size_t basex, size_t basey, size_t basez, size_t numpoints)
 
bool isDirectSolver (const SolverOptions &method)
 returns true if the passed solver method refers to a direct solver type More...
 
boost::python::object raw_buildDomains (boost::python::tuple t, boost::python::dict kwargs)
 
boost::python::object raw_addJob (boost::python::tuple t, boost::python::dict kwargs)
 
boost::python::object raw_addJobPerWorld (boost::python::tuple t, boost::python::dict kwargs)
 
boost::python::object raw_addVariable (boost::python::tuple t, boost::python::dict kwargs)
 
FunctionSpace getTestDomainFunctionSpace (int dpps, DataTypes::dim_t samples, int dpsize)
 
int getSvnVersion ()
 some functions More...
 
int get_core_id ()
 
void setNumberOfThreads (const int num_threads)
 set the number of threads More...
 
int getNumberOfThreads ()
 returns the number of threads More...
 
int getMPISizeWorld ()
 returns the total number of available MPI processes for MPI_COMM_WORLD More...
 
int getMPIRankWorld ()
 returns the MPI processor number within MPI_COMM_WORLD More...
 
int getMPIWorldMax (const int val)
 returns the maximum value of an integer over all processors within MPI_COMM_WORLD More...
 
int getMPIWorldSum (const int val)
 returns sum of an integer over all processors with MPI_COMM_WORLD More...
 
void printParallelThreadCnt ()
 print a message about how many MPI CPUs and OpenMP threads we're using More...
 
int runMPIProgram (bp::list args)
 
double getMachinePrecision ()
 returns the machine precision More...
 
double getMaxFloat ()
 
void MPIBarrierWorld ()
 performs a barrier synchronization across all processors. More...
 
void saveDataCSV (const std::string &filename, bp::dict arg, const std::string &sep, const std::string &csep, bool append)
 
void resolveGroup (bp::object obj)
 
int runMPIProgram (const boost::python::list args)
 uses MPI_Comm_spawn to run an external MPI program safely. More...
 
void saveDataCSV (const std::string &filename, boost::python::dict arg, const std::string &sep, const std::string &csep, bool append=false)
 
void resolveGroup (boost::python::object obj)
 Resolve a collection of Data objects together now. To get performance improvements, the objects will need to have the same function space and share Dag components. More...
 

Variables

EscriptParams escriptParams
 

Typedef Documentation

◆ ASM_ptr

typedef boost::shared_ptr< AbstractSystemMatrix > escript::ASM_ptr

◆ ATP_ptr

typedef boost::shared_ptr<AbstractTransportProblem> escript::ATP_ptr

◆ binOpFnPtr

typedef int(* escript::binOpFnPtr) (double *, const double *, const double *, int, int, int)

◆ const_ASM_ptr

typedef boost::shared_ptr< const AbstractSystemMatrix > escript::const_ASM_ptr

◆ const_DataAbstract_ptr

typedef boost::shared_ptr< const DataAbstract > escript::const_DataAbstract_ptr

◆ const_DataLazy_ptr

typedef boost::shared_ptr< const DataLazy > escript::const_DataLazy_ptr

◆ const_DataReady_ptr

typedef boost::shared_ptr< const DataReady > escript::const_DataReady_ptr

◆ const_Distribution_ptr

typedef boost::shared_ptr<const Distribution> escript::const_Distribution_ptr

◆ const_Domain_ptr

typedef boost::shared_ptr< const AbstractDomain > escript::const_Domain_ptr

◆ DataAbstract_ptr

typedef boost::shared_ptr< DataAbstract > escript::DataAbstract_ptr

◆ DataLazy_ptr

typedef boost::shared_ptr< DataLazy > escript::DataLazy_ptr

◆ DataReady_ptr

typedef boost::shared_ptr< DataReady > escript::DataReady_ptr

◆ Distribution_ptr

typedef boost::shared_ptr<Distribution> escript::Distribution_ptr

◆ Domain_ptr

typedef boost::shared_ptr< AbstractDomain > escript::Domain_ptr

◆ JMPI

typedef boost::shared_ptr<JMPI_> escript::JMPI

◆ Reducer_ptr

typedef boost::shared_ptr<AbstractReducer> escript::Reducer_ptr

◆ SB_ptr

typedef boost::shared_ptr<SolverBuddy> escript::SB_ptr

◆ SubWorld_ptr

typedef boost::shared_ptr<SubWorld> escript::SubWorld_ptr

Enumeration Type Documentation

◆ ES_opgroup

Enumerator
G_UNKNOWN 
G_IDENTITY 
G_BINARY 
G_UNARY 
G_UNARY_P 
G_UNARY_R 
G_NP1OUT 
G_NP1OUT_P 
G_TENSORPROD 
G_NP1OUT_2P 
G_REDUCTION 
G_CONDEVAL 

◆ ES_optype

Enumerator
UNKNOWNOP 
IDENTITY 
ADD 
SUB 
MUL 
DIV 
POW 
SIN 
COS 
TAN 
ASIN 
ACOS 
ATAN 
SINH 
COSH 
TANH 
ERF 
ASINH 
ACOSH 
ATANH 
LOG10 
LOG 
SIGN 
ABS 
NEG 
POS 
EXP 
SQRT 
RECIP 
GZ 
LZ 
GEZ 
LEZ 
NEZ 
EZ 
SYM 
NSYM 
PROD 
TRANS 
TRACE 
SWAP 
MINVAL 
MAXVAL 
CONDEVAL 
HER 
NHER 
REAL 
IMAG 
CONJ 
LESS 
GREATER 
GREATER_EQUAL 
LESS_EQUAL 

◆ SolverOptions

This enum defines the options for solving linear/non-linear systems with escript.

SO_DEFAULT: use escript defaults for specific option SO_TARGET_CPU: use CPUs to solve system SO_TARGET_GPU: use GPUs to solve system

SO_PACKAGE_CUSP: CUDA sparse linear algebra package SO_PACKAGE_MKL: Intel's MKL solver library SO_PACKAGE_PASO: PASO solver package SO_PACKAGE_TRILINOS: The TRILINOS parallel solver class library from Sandia National Labs SO_PACKAGE_UMFPACK: The UMFPACK library

SO_METHOD_BICGSTAB: The stabilized Bi-Conjugate Gradient method SO_METHOD_CHOLEVSKY: The direct solver based on LDLT factorization (can only be applied for symmetric PDEs) SO_METHOD_CGS: The conjugate gradient square method SO_METHOD_CR: The conjugate residual method SO_METHOD_DIRECT: A direct solver based on LDU factorization SO_METHOD_DIRECT_MUMPS: MUMPS parallel direct solver SO_METHOD_DIRECT_PARDISO: MKL Pardiso direct solver SO_METHOD_DIRECT_SUPERLU: SuperLU direct solver SO_METHOD_DIRECT_TRILINOS: Trilinos-based direct solver SO_METHOD_GMRES: The Gram-Schmidt minimum residual method SO_METHOD_HRZ_LUMPING: Matrix lumping using the HRZ approach SO_METHOD_ITERATIVE: The default iterative solver SO_METHOD_LSQR: Least squares with QR factorization SO_METHOD_MINRES: Minimum residual method SO_METHOD_PCG: The preconditioned conjugate gradient method (can only be applied for symmetric PDEs) SO_METHOD_PRES20: Special GMRES with restart after 20 steps and truncation after 5 residuals SO_METHOD_ROWSUM_LUMPING: Matrix lumping using row sum SO_METHOD_TFQMR: Transpose Free Quasi Minimal Residual method

SO_PRECONDITIONER_AMG: Algebraic Multi Grid SO_PRECONDITIONER_AMLI: Algebraic Multi Level Iteration SO_PRECONDITIONER_BOOMERAMG: Boomer AMG (from the hypre library) SO_PRECONDITIONER_GAUSS_SEIDEL: Gauss-Seidel preconditioner SO_PRECONDITIONER_ILU0: The incomplete LU factorization preconditioner with no fill-in SO_PRECONDITIONER_ILUT: The incomplete LU factorization preconditioner with fill-in SO_PRECONDITIONER_JACOBI: The Jacobi preconditioner SO_PRECONDITIONER_NONE: no preconditioner is applied SO_PRECONDITIONER_REC_ILU: recursive ILU0 SO_PRECONDITIONER_RILU: relaxed ILU0

SO_ODESOLVER_BACKWARD_EULER: backward Euler scheme SO_ODESOLVER_CRANK_NICOLSON: Crank-Nicolson scheme SO_ODESOLVER_LINEAR_CRANK_NICOLSON: linerized Crank-Nicolson scheme

SO_INTERPOLATION_CLASSIC: classical interpolation in AMG SO_INTERPOLATION_CLASSIC_WITH_FF_COUPLING: classical interpolation in AMG with enforced SO_INTERPOLATION_DIRECT: direct interpolation in AMG

SO_COARSENING_AGGREGATION: AMG and AMLI coarsening using (symmetric) aggregation SO_COARSENING_CIJP: BoomerAMG parallel coarsening method CIJP SO_COARSENING_CIJP_FIXED_RANDOM: BoomerAMG parallel coarsening method CIJP by using fixed random vector SO_COARSENING_FALGOUT: BoomerAMG parallel coarsening method falgout SO_COARSENING_HMIS: BoomerAMG parallel coarsening method HMIS SO_COARSENING_PMIS: BoomerAMG parallel coarsening method PMIS SO_COARSENING_RUGE_STUEBEN: AMG and AMLI coarsening method by Ruge and Stueben SO_COARSENING_STANDARD: AMG and AMLI standard coarsening using measure of importance of the unknowns SO_COARSENING_YAIR_SHAPIRA: AMG and AMLI coarsening method by Yair-Shapira

SO_REORDERING_DEFAULT: the reordering method recommended by the solver SO_REORDERING_MINIMUM_FILL_IN: Reorder matrix to reduce fill-in during factorization SO_REORDERING_NESTED_DISSECTION: Reorder matrix to improve load balancing during factorization SO_REORDERING_NONE: No matrix reordering allowed

Enumerator
SO_DEFAULT 
SO_TARGET_CPU 
SO_TARGET_GPU 
SO_PACKAGE_CUSP 
SO_PACKAGE_MKL 
SO_PACKAGE_PASO 
SO_PACKAGE_TRILINOS 
SO_PACKAGE_UMFPACK 
SO_METHOD_BICGSTAB 
SO_METHOD_CGLS 
SO_METHOD_CGS 
SO_METHOD_CHOLEVSKY 
SO_METHOD_CR 
SO_METHOD_DIRECT 
SO_METHOD_DIRECT_MUMPS 
SO_METHOD_DIRECT_PARDISO 
SO_METHOD_DIRECT_SUPERLU 
SO_METHOD_DIRECT_TRILINOS 
SO_METHOD_GMRES 
SO_METHOD_HRZ_LUMPING 
SO_METHOD_ITERATIVE 
SO_METHOD_LSQR 
SO_METHOD_MINRES 
SO_METHOD_NONLINEAR_GMRES 
SO_METHOD_PCG 
SO_METHOD_PRES20 
SO_METHOD_ROWSUM_LUMPING 
SO_METHOD_TFQMR 
SO_PRECONDITIONER_AMG 
SO_PRECONDITIONER_AMLI 
SO_PRECONDITIONER_BOOMERAMG 
SO_PRECONDITIONER_GAUSS_SEIDEL 
SO_PRECONDITIONER_ILU0 
SO_PRECONDITIONER_ILUT 
SO_PRECONDITIONER_JACOBI 
SO_PRECONDITIONER_NONE 
SO_PRECONDITIONER_REC_ILU 
SO_PRECONDITIONER_RILU 
SO_ODESOLVER_BACKWARD_EULER 
SO_ODESOLVER_CRANK_NICOLSON 
SO_ODESOLVER_LINEAR_CRANK_NICOLSON 
SO_INTERPOLATION_CLASSIC 
SO_INTERPOLATION_CLASSIC_WITH_FF_COUPLING 
SO_INTERPOLATION_DIRECT 
SO_COARSENING_AGGREGATION 
SO_COARSENING_CIJP 
SO_COARSENING_CIJP_FIXED_RANDOM 
SO_COARSENING_FALGOUT 
SO_COARSENING_HMIS 
SO_COARSENING_PMIS 
SO_COARSENING_RUGE_STUEBEN 
SO_COARSENING_STANDARD 
SO_COARSENING_YAIR_SHAPIRA 
SO_REORDERING_DEFAULT 
SO_REORDERING_MINIMUM_FILL_IN 
SO_REORDERING_NESTED_DISSECTION 
SO_REORDERING_NONE 

Function Documentation

◆ abs_f() [1/2]

template<typename IN >
DataTypes::real_t escript::abs_f ( IN  i)
inline

References fabs().

Referenced by tensor_unary_array_operation_real().

◆ abs_f() [2/2]

template<>
DataTypes::real_t escript::abs_f ( DataTypes::cplx_t  i)
inline

◆ always_real()

bool escript::always_real ( escript::ES_optype  operation)

References ABS, EZ, IMAG, NEZ, and REAL.

Referenced by C_TensorUnaryOperation().

◆ antihermitian()

void escript::antihermitian ( const DataTypes::CplxVectorType in,
const DataTypes::ShapeType inShape,
typename DataTypes::CplxVectorType::size_type  inOffset,
DataTypes::CplxVectorType ev,
const DataTypes::ShapeType evShape,
typename DataTypes::CplxVectorType::size_type  evOffset 
)

computes a antihermitian matrix from your square matrix A: (A - adjoint(A)) / 2

Parameters
in- vector containing the matrix A
inShape- shape of the matrix A
inOffset- the beginning of A within the vector in
ev- vector to store the output matrix
evShape- expected shape of the output matrix
evOffset- starting location for storing ev in vector ev

References escript::DataTypes::getRank(), and escript::DataTypes::getRelIndex().

Referenced by escript::DataConstant::antihermitian(), escript::DataExpanded::antihermitian(), escript::DataTagged::antihermitian(), antisymmetric(), escript::DataAbstract::hasNoSamples(), and escript::DataTagged::isTagged().

◆ antisymmetric()

template<typename VEC >
void escript::antisymmetric ( const VEC &  in,
const DataTypes::ShapeType inShape,
typename VEC::size_type  inOffset,
VEC &  ev,
const DataTypes::ShapeType evShape,
typename VEC::size_type  evOffset 
)
inline

computes a antisymmetric matrix from your square matrix A: (A - transpose(A)) / 2

Parameters
in- vector containing the matrix A
inShape- shape of the matrix A
inOffset- the beginning of A within the vector in
ev- vector to store the output matrix
evShape- expected shape of the output matrix
evOffset- starting location for storing ev in vector ev

References antihermitian(), escript::DataTypes::getRank(), escript::DataTypes::getRelIndex(), and hermitian().

Referenced by escript::DataConstant::antisymmetric(), escript::DataExpanded::antisymmetric(), escript::DataTagged::antisymmetric(), escript::DataAbstract::hasNoSamples(), escript::DataTagged::isTagged(), and escript::DataLazy::resolveNodeNP1OUT().

◆ AssertionErrorTranslator()

void escript::AssertionErrorTranslator ( const EsysException e)

Function which translates an EsysException into a python AssertionError.

References escript::EsysException::what().

◆ binaryOpDataCCC()

void escript::binaryOpDataCCC ( DataConstant result,
const DataConstant left,
const DataConstant right,
escript::ES_optype  operation 
)

◆ binaryOpDataECE()

void escript::binaryOpDataECE ( DataExpanded result,
const DataConstant left,
const DataExpanded right,
escript::ES_optype  operation 
)

◆ binaryOpDataEEC()

void escript::binaryOpDataEEC ( DataExpanded result,
const DataExpanded left,
const DataConstant right,
escript::ES_optype  operation 
)

◆ binaryOpDataEEE()

void escript::binaryOpDataEEE ( DataExpanded result,
const DataExpanded left,
const DataExpanded right,
escript::ES_optype  operation 
)

◆ binaryOpDataEET()

void escript::binaryOpDataEET ( DataExpanded result,
const DataExpanded left,
const DataTagged right,
escript::ES_optype  operation 
)

◆ binaryOpDataETE()

void escript::binaryOpDataETE ( DataExpanded result,
const DataTagged left,
const DataExpanded right,
escript::ES_optype  operation 
)

◆ binaryOpDataReadyHelperCCC()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperCCC ( DataConstant res,
const DataConstant left,
const DataConstant right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataReadyHelperECE()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperECE ( DataExpanded res,
const DataConstant left,
const DataExpanded right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataReadyHelperEEC()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperEEC ( DataExpanded res,
const DataExpanded left,
const DataConstant right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataReadyHelperEEE()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperEEE ( DataExpanded res,
const DataExpanded left,
const DataExpanded right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataReadyHelperEET()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperEET ( DataExpanded res,
const DataExpanded left,
const DataTagged right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataReadyHelperETE()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperETE ( DataExpanded res,
const DataTagged left,
const DataExpanded right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataReadyHelperTCT()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperTCT ( DataTagged res,
const DataConstant left,
const DataTagged right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataReadyHelperTTC()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperTTC ( DataTagged res,
const DataTagged left,
const DataConstant right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataReadyHelperTTT()

template<class ResSCALAR , class LSCALAR , class RSCALAR >
void escript::binaryOpDataReadyHelperTTT ( DataTagged res,
const DataTagged left,
const DataTagged right,
escript::ES_optype  operation 
)
inline

◆ binaryOpDataTCT()

void escript::binaryOpDataTCT ( DataTagged result,
const DataConstant left,
const DataTagged right,
escript::ES_optype  operation 
)

◆ binaryOpDataTTC()

void escript::binaryOpDataTTC ( DataTagged result,
const DataTagged left,
const DataConstant right,
escript::ES_optype  operation 
)

◆ binaryOpDataTTT()

void escript::binaryOpDataTTT ( DataTagged result,
const DataTagged left,
const DataTagged right,
escript::ES_optype  operation 
)

◆ binaryOpVector() [1/2]

template<>
void escript::binaryOpVector ( DataTypes::RealVectorType res,
typename DataTypes::RealVectorType::size_type  resOffset,
const typename DataTypes::RealVectorType::size_type  samplesToProcess,
const typename DataTypes::RealVectorType::size_type  sampleSize,
const DataTypes::RealVectorType left,
typename DataTypes::RealVectorType::size_type  leftOffset,
const bool  leftreset,
const DataTypes::RealVectorType right,
typename DataTypes::RealVectorType::size_type  rightOffset,
const bool  rightreset,
escript::ES_optype  operation 
)

◆ binaryOpVector() [2/2]

template<class ResVEC , class LVEC , class RVEC >
void escript::binaryOpVector ( ResVEC &  res,
typename ResVEC::size_type  resOffset,
const typename ResVEC::size_type  samplesToProcess,
const typename ResVEC::size_type  sampleSize,
const LVEC &  left,
typename LVEC::size_type  leftOffset,
const bool  leftreset,
const RVEC &  right,
typename RVEC::size_type  rightOffset,
const bool  rightreset,
escript::ES_optype  operation 
)

This assumes that all data involved have the same points per sample and same shape

References ADD, binaryOpVector(), DIV, MUL, POW, and SUB.

◆ binaryOpVectorLazyHelper()

template<class ResELT , class LELT , class RELT >
void escript::binaryOpVectorLazyHelper ( ResELT *  res,
const LELT *  left,
const RELT *  right,
const size_t  chunksize,
const size_t  onumsteps,
const size_t  numsteps,
const size_t  resultStep,
const size_t  leftstep,
const size_t  rightstep,
const size_t  oleftstep,
const size_t  orightstep,
size_t  lroffset,
size_t  rroffset,
escript::ES_optype  operation 
)

This assumes that all data involved have the same points per sample and same shape This version is to be called from within DataLazy. It does not have openmp around loops because it will be evaluating individual samples (Which will be done within an enclosing openmp region.

References ADD, DIV, ESYS_ASSERT, GREATER, GREATER_EQUAL, LESS, LESS_EQUAL, MUL, OPVECLAZYBODY, POW, and SUB.

◆ binaryOpVectorLeftScalar() [1/2]

template<>
void escript::binaryOpVectorLeftScalar ( DataTypes::RealVectorType res,
typename DataTypes::RealVectorType::size_type  resOffset,
const typename DataTypes::RealVectorType::size_type  samplesToProcess,
const typename DataTypes::RealVectorType::size_type  sampleSize,
const DataTypes::real_t left,
const bool  leftreset,
const DataTypes::RealVectorType right,
typename DataTypes::RealVectorType::size_type  rightOffset,
escript::ES_optype  operation,
bool  singlerightsample 
)

◆ binaryOpVectorLeftScalar() [2/2]

template<class ResVEC , class LSCALAR , class RVEC >
void escript::binaryOpVectorLeftScalar ( ResVEC &  res,
typename ResVEC::size_type  resOffset,
const typename ResVEC::size_type  samplesToProcess,
const typename ResVEC::size_type  sampleSize,
const LSCALAR *  left,
const bool  leftreset,
const RVEC &  right,
typename RVEC::size_type  rightOffset,
escript::ES_optype  operation,
bool  singlerightsample 
)

This assumes that all data involved have the same points per sample and same shape

References ADD, binaryOpVectorLeftScalar(), DIV, MUL, POW, and SUB.

◆ binaryOpVectorRightScalar() [1/2]

template<>
void escript::binaryOpVectorRightScalar ( DataTypes::RealVectorType res,
typename DataTypes::RealVectorType::size_type  resOffset,
const typename DataTypes::RealVectorType::size_type  samplesToProcess,
const typename DataTypes::RealVectorType::size_type  sampleSize,
const DataTypes::RealVectorType left,
typename DataTypes::RealVectorType::size_type  leftOffset,
const DataTypes::real_t right,
const bool  rightreset,
escript::ES_optype  operation,
bool  singleleftsample 
)

◆ binaryOpVectorRightScalar() [2/2]

template<class ResVEC , class LVEC , class RSCALAR >
void escript::binaryOpVectorRightScalar ( ResVEC &  res,
typename ResVEC::size_type  resOffset,
const typename ResVEC::size_type  samplesToProcess,
const typename ResVEC::size_type  sampleSize,
const LVEC &  left,
typename LVEC::size_type  leftOffset,
const RSCALAR *  right,
const bool  rightreset,
escript::ES_optype  operation,
bool  singleleftsample 
)

This assumes that all data involved have the same points per sample and same shape

References ADD, binaryOpVectorRightScalar(), DIV, MUL, POW, and SUB.

◆ binaryOpVectorTagged() [1/2]

template<>
void escript::binaryOpVectorTagged ( DataTypes::RealVectorType res,
const typename DataTypes::RealVectorType::size_type  samplesToProcess,
const typename DataTypes::RealVectorType::size_type  DPPSample,
const typename DataTypes::RealVectorType::size_type  DPSize,
const DataTypes::RealVectorType left,
const bool  leftscalar,
const DataTypes::RealVectorType right,
const bool  rightscalar,
const bool  lefttagged,
const DataTagged tagsource,
escript::ES_optype  operation 
)

◆ binaryOpVectorTagged() [2/2]

template<class ResVEC , class LVEC , class RVEC >
void escript::binaryOpVectorTagged ( ResVEC &  res,
const typename ResVEC::size_type  samplesToProcess,
const typename ResVEC::size_type  DPPSample,
const typename ResVEC::size_type  DPSize,
const LVEC &  left,
bool  leftscalar,
const RVEC &  right,
bool  rightscalar,
bool  lefttagged,
const DataTagged tagsource,
escript::ES_optype  operation 
)

This assumes that all data involved have the same points per sample and same shape

References ADD, binaryOpVectorTagged(), DIV, escript::DataTagged::getPointOffset(), MUL, POW, and SUB.

◆ binOpFnPtrFromVoidPtr()

binOpFnPtr escript::binOpFnPtrFromVoidPtr ( void *  v)

Casts a void* to a function pointer taking 3 double* and 3 int

Warning
The C standard does not guarantee that void* and function pointer are the same size.

Why do we have this? To allow us to pass function pointers between modules via python. To do this without using a custom object we use void*

Referenced by escript::Data::get_MPIComm().

◆ C_GeneralTensorProduct()

Data escript::C_GeneralTensorProduct ( Data arg_0,
Data arg_1,
int  axis_offset = 0,
int  transpose = 0 
)

◆ C_TensorBinaryOperation()

Data escript::C_TensorBinaryOperation ( Data const &  arg_0,
Data const &  arg_1,
escript::ES_optype  operation 
)

◆ C_TensorUnaryOperation()

Data escript::C_TensorUnaryOperation ( Data const &  arg_0,
escript::ES_optype  operation,
DataTypes::real_t  tol = 0 
)

References escript::DataTagged::addTag(), always_real(), escript::Data::borrowData(), escript::Data::complicate(), escript::Data::Data(), escript::Data::getDataAtOffsetRO(), escript::Data::getDataAtOffsetRW(), escript::DataTagged::getDataByTagRO(), escript::DataTagged::getDataByTagRW(), escript::Data::getDataPointShape(), escript::Data::getDataPointSize(), escript::DataTagged::getDefaultValueRO(), escript::DataTagged::getDefaultValueRW(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getNumSamples(), escript::DataExpanded::getPointOffset(), escript::DataTagged::getTagLookup(), escript::Data::isComplex(), escript::Data::isConstant(), escript::Data::isEmpty(), escript::Data::isExpanded(), escript::Data::isLazy(), escript::Data::isTagged(), supports_cplx(), escript::Data::tag(), tensor_unary_array_operation(), and tensor_unary_array_operation_real().

Referenced by escript::Data::abs(), escript::Data::acos(), escript::Data::acosh(), escript::Data::asin(), escript::Data::asinh(), escript::Data::atan(), escript::Data::atanh(), escript::Data::conjugate(), escript::Data::cos(), escript::Data::cosh(), escript::Data::dp_algorithm(), escript::Data::erf(), escript::Data::exp(), escript::Data::imag(), escript::Data::log(), escript::Data::log10(), escript::Data::neg(), escript::Data::oneOver(), escript::Data::real(), escript::Data::sign(), escript::Data::sin(), escript::Data::sinh(), escript::Data::sqrt(), escript::Data::tan(), escript::Data::tanh(), escript::Data::whereNegative(), escript::Data::whereNonNegative(), escript::Data::whereNonPositive(), escript::Data::whereNonZero(), escript::Data::wherePositive(), and escript::Data::whereZero().

◆ calc_acos() [1/2]

DataTypes::real_t escript::calc_acos ( DataTypes::real_t  x)
inline

◆ calc_acos() [2/2]

DataTypes::cplx_t escript::calc_acos ( DataTypes::cplx_t  x)
inline

◆ calc_erf() [1/2]

DataTypes::real_t escript::calc_erf ( DataTypes::real_t  x)
inline

◆ calc_erf() [2/2]

DataTypes::cplx_t escript::calc_erf ( DataTypes::cplx_t  x)
inline

References makeNaN().

◆ calc_gezero() [1/2]

DataTypes::real_t escript::calc_gezero ( const DataTypes::real_t x)
inline

◆ calc_gezero() [2/2]

DataTypes::cplx_t escript::calc_gezero ( const DataTypes::cplx_t x)
inline

References makeNaN().

◆ calc_gtzero() [1/2]

DataTypes::real_t escript::calc_gtzero ( const DataTypes::real_t x)
inline

◆ calc_gtzero() [2/2]

DataTypes::cplx_t escript::calc_gtzero ( const DataTypes::cplx_t x)
inline

References makeNaN().

◆ calc_lezero() [1/2]

DataTypes::real_t escript::calc_lezero ( const DataTypes::real_t x)
inline

◆ calc_lezero() [2/2]

DataTypes::cplx_t escript::calc_lezero ( const DataTypes::cplx_t x)
inline

References makeNaN().

◆ calc_ltzero() [1/2]

DataTypes::real_t escript::calc_ltzero ( const DataTypes::real_t x)
inline

◆ calc_ltzero() [2/2]

DataTypes::cplx_t escript::calc_ltzero ( const DataTypes::cplx_t x)
inline

References makeNaN().

◆ calc_sign() [1/2]

DataTypes::real_t escript::calc_sign ( DataTypes::real_t  x)
inline

References fsign().

Referenced by tensor_unary_array_operation().

◆ calc_sign() [2/2]

DataTypes::cplx_t escript::calc_sign ( DataTypes::cplx_t  x)
inline

References makeNaN().

◆ canInterpolate()

bool escript::canInterpolate ( FunctionSpace  src,
FunctionSpace  dest 
)

◆ checkOffset()

template<class VEC >
bool escript::checkOffset ( const VEC &  data,
const DataTypes::ShapeType shape,
typename VEC::size_type  offset 
)
inline

Inline function definitions.

References escript::DataTypes::noValues().

Referenced by reductionOpVector().

◆ checkResult()

bool escript::checkResult ( int  res,
int &  mres,
const JMPI info 
)

◆ condEval()

Data escript::condEval ( escript::Data mask,
escript::Data trueval,
escript::Data falseval 
)

◆ conjugate() [1/2]

template<typename OUT , typename IN >
OUT escript::conjugate ( const IN  i)
inline

◆ conjugate() [2/2]

template<>
DataTypes::real_t escript::conjugate ( const DataTypes::real_t  r)
inline

◆ continuousFunction()

FunctionSpace escript::continuousFunction ( const AbstractDomain domain)

◆ convertToData() [1/2]

Data escript::convertToData ( const boost::python::object &  value,
const FunctionSpace what = FunctionSpace() 
)

Tries to convert value into a Data object on FunctionSpace what. If value is already a Data object, the object is returned if it is defined on what otherwise interpolated data of values are returned. If value is not a data object it is tried to generate the corresponding data object. escript::DataEmpty() is returned if value is identified as empty.

◆ convertToData() [2/2]

Data escript::convertToData ( const bp::object &  value,
const FunctionSpace what 
)

◆ determineResultShape()

DataTypes::ShapeType escript::determineResultShape ( const DataTypes::ShapeType left,
const DataTypes::ShapeType right 
)

Determine the shape of the result array for a matrix multiplication of the given views.

Parameters
left,right- shapes of the left and right matricies
Returns
the shape of the matrix which would result from multiplying left and right

References escript::DataTypes::getRank().

◆ diracDeltaFunctions()

FunctionSpace escript::diracDeltaFunctions ( const AbstractDomain domain)

◆ eigenvalues()

void escript::eigenvalues ( const DataTypes::RealVectorType in,
const DataTypes::ShapeType inShape,
typename DataTypes::RealVectorType::size_type  inOffset,
DataTypes::RealVectorType ev,
const DataTypes::ShapeType evShape,
typename DataTypes::RealVectorType::size_type  evOffset 
)
inline

solves a local eigenvalue problem

Parameters
in- vector containing the input matrix
inShape- shape of the input matrix
inOffset- the beginning of the input matrix within the vector "in"
ev- vector to store the eigenvalues
evShape- expected shape of the eigenvalues
evOffset- starting location for storing the eigenvalues in vector ev

References eigenvalues1(), eigenvalues2(), eigenvalues3(), ESCRIPT_DLL_API, and escript::DataTypes::getRelIndex().

Referenced by escript::DataConstant::eigenvalues(), escript::DataExpanded::eigenvalues(), escript::DataTagged::eigenvalues(), escript::DataAbstract::hasNoSamples(), and escript::DataTagged::isTagged().

◆ eigenvalues1() [1/2]

void escript::eigenvalues1 ( const DataTypes::real_t  A00,
DataTypes::real_t ev0 
)
inline

solves a 1x1 eigenvalue A*V=ev*V problem

Parameters
A00Input - A_00
ev0Output - eigenvalue

Referenced by eigenvalues(), and eigenvalues_and_eigenvectors1().

◆ eigenvalues1() [2/2]

void escript::eigenvalues1 ( const DataTypes::cplx_t  A00,
DataTypes::cplx_t ev0 
)
inline

◆ eigenvalues2()

template<class T >
void escript::eigenvalues2 ( const T  A00,
const T  A01,
const T  A11,
T *  ev0,
T *  ev1 
)
inline

solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A

Parameters
A00Input - A_00
A01Input - A_01
A11Input - A_11
ev0Output - smallest eigenvalue
ev1Output - largest eigenvalue

Referenced by eigenvalues(), and eigenvalues_and_eigenvectors2().

◆ eigenvalues3()

void escript::eigenvalues3 ( const DataTypes::real_t  A00,
const DataTypes::real_t  A01,
const DataTypes::real_t  A02,
const DataTypes::real_t  A11,
const DataTypes::real_t  A12,
const DataTypes::real_t  A22,
DataTypes::real_t ev0,
DataTypes::real_t ev1,
DataTypes::real_t ev2 
)
inline

solves a 3x3 eigenvalue A*V=ev*V problem for symmetric A

Parameters
A00Input - A_00
A01Input - A_01
A02Input - A_02
A11Input - A_11
A12Input - A_12
A22Input - A_22
ev0Output - smallest eigenvalue
ev1Output - eigenvalue
ev2Output - largest eigenvalue

References M_PI.

Referenced by eigenvalues(), and eigenvalues_and_eigenvectors3().

◆ eigenvalues_and_eigenvectors()

void escript::eigenvalues_and_eigenvectors ( const DataTypes::RealVectorType in,
const DataTypes::ShapeType inShape,
DataTypes::RealVectorType::size_type  inOffset,
DataTypes::RealVectorType ev,
const DataTypes::ShapeType evShape,
DataTypes::RealVectorType::size_type  evOffset,
DataTypes::RealVectorType V,
const DataTypes::ShapeType VShape,
DataTypes::RealVectorType::size_type  VOffset,
const double  tol = 1.e-13 
)
inline

solves a local eigenvalue problem

Parameters
in- vector containing the input matrix
inShape- shape of the input matrix
inOffset- the beginning of the input matrix within the vector "in"
ev- vector to store the eigenvalues
evShape- expected shape of the eigenvalues
evOffset- starting location for storing the eigenvalues in ev
V- vector to store the eigenvectors
VShape- expected shape of the eigenvectors
VOffset- starting location for storing the eigenvectors in V
tol- Input - eigenvalues with relative difference tol are treated as equal

References eigenvalues_and_eigenvectors1(), eigenvalues_and_eigenvectors2(), eigenvalues_and_eigenvectors3(), and escript::DataTypes::getRelIndex().

Referenced by escript::DataConstant::eigenvalues_and_eigenvectors(), escript::DataExpanded::eigenvalues_and_eigenvectors(), escript::DataTagged::eigenvalues_and_eigenvectors(), escript::DataAbstract::hasNoSamples(), and escript::DataTagged::isTagged().

◆ eigenvalues_and_eigenvectors1()

void escript::eigenvalues_and_eigenvectors1 ( const DataTypes::real_t  A00,
DataTypes::real_t ev0,
DataTypes::real_t V00,
const DataTypes::real_t  tol 
)
inline

solves a 1x1 eigenvalue A*V=ev*V problem for symmetric A

Parameters
A00Input - A_00
ev0Output - eigenvalue
V00Output - eigenvector
tolInput - tolerance to identify to eigenvalues

References eigenvalues1().

Referenced by eigenvalues_and_eigenvectors().

◆ eigenvalues_and_eigenvectors2()

void escript::eigenvalues_and_eigenvectors2 ( const DataTypes::real_t  A00,
const DataTypes::real_t  A01,
const DataTypes::real_t  A11,
DataTypes::real_t ev0,
DataTypes::real_t ev1,
DataTypes::real_t V00,
DataTypes::real_t V10,
DataTypes::real_t V01,
DataTypes::real_t V11,
const DataTypes::real_t  tol 
)
inline

solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A. Eigenvectors are ordered by increasing value and eigen vectors are normalizeVector3d such that length is zero and first non-zero component is positive.

Parameters
A00Input - A_00
A01Input - A_01
A11Input - A_11
ev0Output - smallest eigenvalue
ev1Output - eigenvalue
V00Output - eigenvector componenent coresponding to ev0
V10Output - eigenvector componenent coresponding to ev0
V01Output - eigenvector componenent coresponding to ev1
V11Output - eigenvector componenent coresponding to ev1
tolInput - tolerance to identify to eigenvalues

References eigenvalues2(), fabs(), paso::util::scale(), and vectorInKernel2().

Referenced by eigenvalues_and_eigenvectors(), and eigenvalues_and_eigenvectors3().

◆ eigenvalues_and_eigenvectors3()

void escript::eigenvalues_and_eigenvectors3 ( const DataTypes::real_t  A00,
const DataTypes::real_t  A01,
const DataTypes::real_t  A02,
const DataTypes::real_t  A11,
const DataTypes::real_t  A12,
const DataTypes::real_t  A22,
DataTypes::real_t ev0,
DataTypes::real_t ev1,
DataTypes::real_t ev2,
DataTypes::real_t V00,
DataTypes::real_t V10,
DataTypes::real_t V20,
DataTypes::real_t V01,
DataTypes::real_t V11,
DataTypes::real_t V21,
DataTypes::real_t V02,
DataTypes::real_t V12,
DataTypes::real_t V22,
const DataTypes::real_t  tol 
)
inline

solves a 2x2 eigenvalue A*V=ev*V problem for symmetric A. Eigenvectors are ordered by increasing value and eigen vectors are normalizeVector3d such that length is zero and first non-zero component is positive.

Parameters
A00Input - A_00
A01Input - A_01
A02Input - A_02
A11Input - A_11
A12Input - A_12
A22Input - A_22
ev0Output - smallest eigenvalue
ev1Output - eigenvalue
ev2Output -
V00Output - eigenvector componenent coresponding to ev0
V10Output - eigenvector componenent coresponding to ev0
V20Output -
V01Output - eigenvector componenent coresponding to ev1
V11Output - eigenvector componenent coresponding to ev1
V21Output -
V02Output -
V12Output -
V22Output -
tolInput - tolerance to identify to eigenvalues

References eigenvalues3(), eigenvalues_and_eigenvectors2(), fabs(), normalizeVector3(), and vectorInKernel3__nonZeroA00().

Referenced by eigenvalues_and_eigenvectors().

◆ fabs()

escript::DataTypes::real_t escript::fabs ( const escript::DataTypes::cplx_t  c)
inline

◆ fsign()

DataTypes::real_t escript::fsign ( DataTypes::real_t  x)
inline

References fabs().

Referenced by calc_sign().

◆ function()

FunctionSpace escript::function ( const AbstractDomain domain)

◆ functionOnBoundary()

FunctionSpace escript::functionOnBoundary ( const AbstractDomain domain)

◆ functionOnContactOne()

FunctionSpace escript::functionOnContactOne ( const AbstractDomain domain)

Return a FunctionSpace on right side of contact.

References CTS_CHECK, and escript::AbstractDomain::getPtr().

Referenced by BOOST_PYTHON_MODULE().

◆ functionOnContactZero()

FunctionSpace escript::functionOnContactZero ( const AbstractDomain domain)

Return a FunctionSpace on left side of contact.

References CTS_CHECK, and escript::AbstractDomain::getPtr().

Referenced by BOOST_PYTHON_MODULE().

◆ get_core_id()

int escript::get_core_id ( )

Referenced by printParallelThreadCnt().

◆ getEscriptParamInt()

int escript::getEscriptParamInt ( const std::string &  name,
int  sentinel = 0 
)
inline

get the value of a named parameter. See listEscriptParams() for available parameters.

References escript::EscriptParams::getInt().

Referenced by BOOST_PYTHON_MODULE().

◆ getMachinePrecision()

double escript::getMachinePrecision ( )

returns the machine precision

Referenced by BOOST_PYTHON_MODULE().

◆ getMaxFloat()

double escript::getMaxFloat ( )

Referenced by BOOST_PYTHON_MODULE().

◆ getMPIRankWorld()

int escript::getMPIRankWorld ( )

returns the MPI processor number within MPI_COMM_WORLD

References MPI_COMM_WORLD.

Referenced by BOOST_PYTHON_MODULE(), escript::TestDomain::getMPIRank(), printParallelThreadCnt(), and escript::TestDomain::TestDomain().

◆ getMPISizeWorld()

int escript::getMPISizeWorld ( )

returns the total number of available MPI processes for MPI_COMM_WORLD

References MPI_COMM_WORLD.

Referenced by BOOST_PYTHON_MODULE(), escript::TestDomain::getMPISize(), printParallelThreadCnt(), and escript::TestDomain::TestDomain().

◆ getMPIWorldMax()

int escript::getMPIWorldMax ( int  val)

returns the maximum value of an integer over all processors within MPI_COMM_WORLD

References MPI_COMM_WORLD, MPI_INT, and MPI_MAX.

Referenced by BOOST_PYTHON_MODULE(), and runMPIProgram().

◆ getMPIWorldSum()

int escript::getMPIWorldSum ( int  val)

returns sum of an integer over all processors with MPI_COMM_WORLD

References MPI_COMM_WORLD, MPI_INT, and MPI_SUM.

Referenced by BOOST_PYTHON_MODULE(), and runMPIProgram().

◆ getNumberOfThreads()

int escript::getNumberOfThreads ( )

returns the number of threads

Referenced by BOOST_PYTHON_MODULE(), and escript::DataLazy::resolveNodeWorker().

◆ getOpgroup()

ES_opgroup escript::getOpgroup ( ES_optype  op)

◆ getStringFromPyException()

void escript::getStringFromPyException ( boost::python::error_already_set  e,
std::string &  errormsg 
)

◆ getSubWorldTag()

int escript::getSubWorldTag ( )
inline

tag reserved for use by SubWorld code This value should be higher than the modulus used in JMPI_::setCounter. Apart from that, its value is not particularly significant.

Referenced by checkResult().

◆ getSvnVersion()

int escript::getSvnVersion ( )

some functions

return the SVN version number used to build this version.

Warning
Only gives accurate answers for clean checkouts

Referenced by BOOST_PYTHON_MODULE().

◆ getTestDomainFunctionSpace()

FunctionSpace escript::getTestDomainFunctionSpace ( int  dpps,
DataTypes::dim_t  samples,
int  dpsize 
)

◆ gettime()

double escript::gettime ( )
inline

◆ hasFeature()

bool escript::hasFeature ( const std::string &  name)
inline

returns true if escript was compiled with the feature name, false otherwise.

References escript::EscriptParams::hasFeature().

Referenced by BOOST_PYTHON_MODULE().

◆ hermitian()

void escript::hermitian ( const DataTypes::CplxVectorType in,
const DataTypes::ShapeType inShape,
DataTypes::CplxVectorType::size_type  inOffset,
DataTypes::CplxVectorType ev,
const DataTypes::ShapeType evShape,
DataTypes::CplxVectorType::size_type  evOffset 
)

computes an hermitian matrix from your square matrix A: (A + adjoint(A)) / 2

Parameters
in- vector containing the matrix A
inShape- shape of the matrix A
inOffset- the beginning of A within the vector in
ev- vector to store the output matrix
evShape- expected shape of the output matrix
evOffset- starting location for storing ev in vector ev

References escript::DataTypes::getRank(), and escript::DataTypes::getRelIndex().

Referenced by antisymmetric(), escript::DataAbstract::hasNoSamples(), escript::DataConstant::hermitian(), escript::DataExpanded::hermitian(), escript::DataTagged::hermitian(), and escript::DataTagged::isTagged().

◆ IOErrorTranslator()

void escript::IOErrorTranslator ( const EsysException e)

Function which translates an EsysException into a python IOError.

References escript::EsysException::what().

◆ isDirectSolver()

bool escript::isDirectSolver ( const SolverOptions method)
inline

◆ listEscriptParams()

boost::python::list escript::listEscriptParams ( )
inline

describe available parameters.

Returns
a list of tuples (parameter name, value, description)

References escript::EscriptParams::listEscriptParams().

Referenced by BOOST_PYTHON_MODULE().

◆ listFeatures()

boost::python::list escript::listFeatures ( )
inline

returns a list of features escript was compiled with.

Returns
a boost python list of strings

References escript::EscriptParams::listFeatures().

Referenced by BOOST_PYTHON_MODULE().

◆ load()

Data escript::load ( const std::string  fileName,
const AbstractDomain domain 
)

◆ loadConfigured()

bool escript::loadConfigured ( )

returns true if the load funtion is configured.

Referenced by BOOST_PYTHON_MODULE().

◆ makeDataReducer()

Reducer_ptr escript::makeDataReducer ( std::string  type)

References MPI_OP_NULL, and MPI_SUM.

Referenced by BOOST_PYTHON_MODULE().

◆ makeInfo()

JMPI escript::makeInfo ( MPI_Comm  comm,
bool  owncom = false 
)

◆ makeNaN()

DataTypes::real_t escript::makeNaN ( )
inline

returns a NaN.

Warning
Should probably only used where you know you can test for NaNs

Referenced by calc_erf(), calc_gezero(), calc_gtzero(), calc_lezero(), calc_ltzero(), calc_sign(), escript::Data::infWorker(), escript::Data::lazyAlgWorker(), escript::Data::LsupWorker(), and escript::Data::supWorker().

◆ makeNonReducedVariable()

Reducer_ptr escript::makeNonReducedVariable ( )

◆ makeScalarReducer()

Reducer_ptr escript::makeScalarReducer ( std::string  type)

References MPI_MAX, MPI_MIN, MPI_OP_NULL, and MPI_SUM.

Referenced by BOOST_PYTHON_MODULE().

◆ matMult()

void escript::matMult ( const DataTypes::RealVectorType left,
const DataTypes::ShapeType leftShape,
DataTypes::RealVectorType::size_type  leftOffset,
const DataTypes::RealVectorType right,
const DataTypes::ShapeType rightShape,
DataTypes::RealVectorType::size_type  rightOffset,
DataTypes::RealVectorType result,
const DataTypes::ShapeType resultShape 
)

Perform a matrix multiply of the given views.

In order to properly identify the datapoints, in most cases, the vector, shape and offset of the point must all be supplied. Note that vector in this context refers to a data vector storing datapoints not a mathematical vector. (However, datapoints within the data vector could represent scalars, vectors, matricies, ...). NB: Only multiplies together the two given datapoints, would need to call this over all data-points to multiply the entire Data objects involved.

Parameters
left,right- vectors containing the datapoints
leftShape,rightShape- shapes of datapoints in the vectors
leftOffset,rightOffset- beginnings of datapoints in the vectors
result- Vector to store the resulting datapoint in
resultShape- expected shape of the resulting datapoint

References escript::DataTypes::getRank(), and escript::DataTypes::getRelIndex().

◆ matrix_inverse()

int escript::matrix_inverse ( const DataTypes::RealVectorType in,
const DataTypes::ShapeType inShape,
DataTypes::RealVectorType::size_type  inOffset,
DataTypes::RealVectorType out,
const DataTypes::ShapeType outShape,
DataTypes::RealVectorType::size_type  outOffset,
int  count,
LapackInverseHelper helper 
)

computes the inverses of square (up to 3x3) matricies

Parameters
in- vector containing the input matricies
inShape- shape of the input matricies
inOffset- the beginning of the input matricies within the vector "in"
out- vector to store the inverses
outShape- expected shape of the inverses
outOffset- starting location for storing the inverses in out
count- number of matricies to invert
helper- associated working storage
Exceptions
DataExceptionif input and output are not the correct shape or if any of the matricies are not invertible.
Returns
0 on success, on failure the return value should be passed to matrixInverseError(int err).

References escript::DataTypes::getRank(), escript::DataTypes::getRelIndex(), escript::LapackInverseHelper::invert(), NEEDLAPACK, escript::DataTypes::noValues(), and SUCCESS.

Referenced by escript::DataExpanded::matrixInverse(), escript::DataTagged::matrixInverse(), escript::DataConstant::matrixInverse(), and reductionOpVector().

◆ matrix_matrix_product()

template<class LEFT , class RIGHT , class RES >
void escript::matrix_matrix_product ( const int  SL,
const int  SM,
const int  SR,
const LEFT *  A,
const RIGHT *  B,
RES *  C,
int  transpose 
)
inline

◆ matrixInverseError()

void escript::matrixInverseError ( int  err)

throws an appropriate exception based on failure of matrix_inverse.

Parameters
err- error code returned from matrix_inverse
Warning
do not call in a parallel region since it throws.

References ERRFACTORISE, ERRINVERT, and NEEDLAPACK.

Referenced by escript::Data::matrixInverse(), and reductionOpVector().

◆ MPIBarrierWorld()

void escript::MPIBarrierWorld ( )

performs a barrier synchronization across all processors.

References escript::NoCOMM_WORLD::active(), and MPI_COMM_WORLD.

Referenced by BOOST_PYTHON_MODULE(), and escript::TestDomain::MPIBarrier().

◆ nancheck()

bool escript::nancheck ( DataTypes::real_t  d)
inline

acts as a wrapper to isnan.

Warning
if compiler does not support FP_NAN this function will always return false.

Referenced by vectorHasNaN().

◆ normalizeVector3()

void escript::normalizeVector3 ( DataTypes::real_t V0,
DataTypes::real_t V1,
DataTypes::real_t V2 
)
inline

nomalizes a 3-d vector such that length is one and first non-zero component is positive.

Parameters
V0- vector componenent
V1- vector componenent
V2- vector componenent

Referenced by eigenvalues_and_eigenvectors3().

◆ NotImplementedErrorTranslator()

void escript::NotImplementedErrorTranslator ( const EsysException e)

Function which translates an EsysException into a python NotImplementedError.

References escript::EsysException::what().

◆ operator*() [1/4]

Data escript::operator* ( const AbstractSystemMatrix left,
const Data right 
)

◆ operator*() [2/4]

Data escript::operator* ( const Data left,
const Data right 
)

Operator* Takes two Data objects.

References C_TensorBinaryOperation(), MAKELAZYBIN2, and MUL.

◆ operator*() [3/4]

Data escript::operator* ( const Data left,
const boost::python::object &  right 
)

Operator* Takes LHS Data object and RHS python::object. python::object must be convertable to Data type.

References escript::Data::getFunctionSpace(), MAKELAZYBIN2, and MUL.

◆ operator*() [4/4]

Data escript::operator* ( const boost::python::object &  left,
const Data right 
)

Operator* Takes LHS python::object and RHS Data object. python::object must be convertable to Data type.

References escript::Data::getFunctionSpace(), MAKELAZYBIN2, and MUL.

◆ operator+() [1/3]

Data escript::operator+ ( const Data left,
const Data right 
)

Operator+ Takes two Data objects.

References ADD, C_TensorBinaryOperation(), and MAKELAZYBIN2.

Referenced by rpow().

◆ operator+() [2/3]

Data escript::operator+ ( const Data left,
const boost::python::object &  right 
)

Operator+ Takes LHS Data object and RHS python::object. python::object must be convertable to Data type.

References ADD, escript::Data::getFunctionSpace(), and MAKELAZYBIN2.

◆ operator+() [3/3]

Data escript::operator+ ( const boost::python::object &  left,
const Data right 
)

Operator+ Takes LHS python::object and RHS Data object. python::object must be convertable to Data type.

References ADD, escript::Data::getFunctionSpace(), and MAKELAZYBIN2.

◆ operator-() [1/3]

Data escript::operator- ( const Data left,
const Data right 
)

Operator- Takes two Data objects.

References C_TensorBinaryOperation(), MAKELAZYBIN2, and SUB.

Referenced by rpow().

◆ operator-() [2/3]

Data escript::operator- ( const Data left,
const boost::python::object &  right 
)

Operator- Takes LHS Data object and RHS python::object. python::object must be convertable to Data type.

References escript::Data::getFunctionSpace(), MAKELAZYBIN2, and SUB.

◆ operator-() [3/3]

Data escript::operator- ( const boost::python::object &  left,
const Data right 
)

Operator- Takes LHS python::object and RHS Data object. python::object must be convertable to Data type.

References escript::Data::getFunctionSpace(), MAKELAZYBIN2, and SUB.

◆ operator/() [1/3]

Data escript::operator/ ( const Data left,
const Data right 
)

Operator/ Takes two Data objects.

References C_TensorBinaryOperation(), DIV, and MAKELAZYBIN2.

Referenced by rpow().

◆ operator/() [2/3]

Data escript::operator/ ( const Data left,
const boost::python::object &  right 
)

Operator/ Takes LHS Data object and RHS python::object. python::object must be convertable to Data type.

References DIV, escript::Data::getFunctionSpace(), and MAKELAZYBIN2.

◆ operator/() [3/3]

Data escript::operator/ ( const boost::python::object &  left,
const Data right 
)

Operator/ Takes LHS python::object and RHS Data object. python::object must be convertable to Data type.

References DIV, escript::Data::getFunctionSpace(), and MAKELAZYBIN2.

◆ operator<<()

ostream & escript::operator<< ( std::ostream &  o,
const Data data 
)

Output operator.

References escript::Data::toString().

Referenced by rpow().

◆ opToString()

const std::string & escript::opToString ( ES_optype  op)

◆ patternFillArray()

void escript::patternFillArray ( int  pattern,
size_t  x,
size_t  y,
size_t  z,
double *  array,
size_t  spacing,
size_t  basex,
size_t  basey,
size_t  basez,
size_t  numpoints 
)

References paso::util::copy().

◆ patternFillArray2D()

void escript::patternFillArray2D ( size_t  x,
size_t  y,
double *  array,
size_t  spacing,
size_t  basex,
size_t  basey,
size_t  numpoints 
)

◆ printParallelThreadCnt()

void escript::printParallelThreadCnt ( )

print a message about how many MPI CPUs and OpenMP threads we're using

References get_core_id(), getMPIRankWorld(), and getMPISizeWorld().

Referenced by BOOST_PYTHON_MODULE().

◆ randomData()

Data escript::randomData ( const boost::python::tuple &  shape,
const FunctionSpace what,
long  seed,
const boost::python::tuple &  filter 
)

Create a new Expanded Data object filled with pseudo-random data.

References escript::FunctionSpace::getDomain().

Referenced by BOOST_PYTHON_MODULE().

◆ randomFillArray()

void escript::randomFillArray ( long  seed,
double *  array,
size_t  n 
)

◆ raw_addJob()

boost::python::object escript::raw_addJob ( boost::python::tuple  t,
boost::python::dict  kwargs 
)

used to invoke the SplitWorld version from python (in lieu of a method based equivalent to raw_function)

References escript::SplitWorld::addJob().

Referenced by BOOST_PYTHON_MODULE().

◆ raw_addJobPerWorld()

boost::python::object escript::raw_addJobPerWorld ( boost::python::tuple  t,
boost::python::dict  kwargs 
)

used to invoke the SplitWorld version from python (in lieu of a method based equivalent to raw_function)

References escript::SplitWorld::addJobPerWorld().

Referenced by BOOST_PYTHON_MODULE().

◆ raw_addVariable()

boost::python::object escript::raw_addVariable ( boost::python::tuple  t,
boost::python::dict  kwargs 
)

used to add a reducer for shared values.

References escript::SplitWorld::addVariable().

Referenced by BOOST_PYTHON_MODULE().

◆ raw_buildDomains()

boost::python::object escript::raw_buildDomains ( boost::python::tuple  t,
boost::python::dict  kwargs 
)

used to invoke the SplitWorld version from python (in lieu of a method based equivalent to raw_function)

References escript::SplitWorld::buildDomains().

Referenced by BOOST_PYTHON_MODULE().

◆ reducedContinuousFunction()

FunctionSpace escript::reducedContinuousFunction ( const AbstractDomain domain)

◆ reducedFunction()

FunctionSpace escript::reducedFunction ( const AbstractDomain domain)

Return a function FunctionSpace with reduced integration order.

References CTS_CHECK, and escript::AbstractDomain::getPtr().

Referenced by BOOST_PYTHON_MODULE().

◆ reducedFunctionOnBoundary()

FunctionSpace escript::reducedFunctionOnBoundary ( const AbstractDomain domain)

Return a function on boundary FunctionSpace with reduced integration order.

References CTS_CHECK, and escript::AbstractDomain::getPtr().

Referenced by BOOST_PYTHON_MODULE().

◆ reducedFunctionOnContactOne()

FunctionSpace escript::reducedFunctionOnContactOne ( const AbstractDomain domain)

Return a FunctionSpace on right side of contact with reduced integration order.

References CTS_CHECK, and escript::AbstractDomain::getPtr().

Referenced by BOOST_PYTHON_MODULE().

◆ reducedFunctionOnContactZero()

FunctionSpace escript::reducedFunctionOnContactZero ( const AbstractDomain domain)

Return a FunctionSpace on left side of contact with reduced integration order.

References CTS_CHECK, and escript::AbstractDomain::getPtr().

Referenced by BOOST_PYTHON_MODULE().

◆ reducedSolution()

FunctionSpace escript::reducedSolution ( const AbstractDomain domain)

Return a FunctionSpace with reduced integration order.

References CTS_CHECK, and escript::AbstractDomain::getPtr().

Referenced by BOOST_PYTHON_MODULE().

◆ reductionOpVector()

template<class BinaryFunction >
DataTypes::real_t escript::reductionOpVector ( const DataTypes::RealVectorType left,
const DataTypes::ShapeType leftShape,
DataTypes::RealVectorType::size_type  offset,
BinaryFunction  operation,
DataTypes::real_t  initial_value 
)
inline

Perform the given data point reduction operation on the data point specified by the given offset into the view. Reduces all elements of the data point using the given operation, returning the result as a scalar. Operation must be a pointer to a function.

Called by escript::algorithm.

Parameters
left- vector containing the datapoint
shape- shape of datapoints in the vector
offset- beginning of datapoint in the vector
operation- Input - Operation to apply. Must be a pointer to a function.
initial_value

References checkOffset(), ESYS_ASSERT, matrix_inverse(), matrixInverseError(), escript::DataTypes::noValues(), and escript::DataTypes::DataVectorAlt< T >::size().

Referenced by escript::Data::dp_algorithm(), escript::Data::reduction(), and escript::DataLazy::resolveNodeReduction().

◆ resolveGroup() [1/2]

void escript::resolveGroup ( boost::python::object  obj)

Resolve a collection of Data objects together now. To get performance improvements, the objects will need to have the same function space and share Dag components.

Parameters
objA python list or tuple of Data objects to be resolved together.

◆ resolveGroup() [2/2]

void escript::resolveGroup ( bp::object  obj)

◆ rpow()

DataTypes::real_t escript::rpow ( DataTypes::real_t  x,
DataTypes::real_t  y 
)
inline

◆ runMPIProgram() [1/2]

int escript::runMPIProgram ( const boost::python::list  args)

uses MPI_Comm_spawn to run an external MPI program safely.

◆ runMPIProgram() [2/2]

int escript::runMPIProgram ( bp::list  args)

◆ RuntimeErrorTranslator()

void escript::RuntimeErrorTranslator ( const EsysException e)

Function which translates an EsysException into a python RuntimeError.

References escript::EsysException::what().

Referenced by BOOST_PYTHON_MODULE().

◆ saveDataCSV() [1/2]

void escript::saveDataCSV ( const std::string &  filename,
boost::python::dict  arg,
const std::string &  sep,
const std::string &  csep,
bool  append = false 
)

◆ saveDataCSV() [2/2]

void escript::saveDataCSV ( const std::string &  filename,
bp::dict  arg,
const std::string &  sep,
const std::string &  csep,
bool  append 
)

◆ Scalar()

Data escript::Scalar ( double  value,
const FunctionSpace what = FunctionSpace(),
bool  expanded = false 
)

A collection of factory functions for creating Data objects which contain data points of various shapes.

Return a Data object containing scalar data-points. ie: rank 0 data-points.

Parameters
value- Input - Single value applied to all Data.
what- Input - A description of what this data represents.
expanded- Input - if true fill the entire container with the value. Otherwise a more efficient storage mechanism will be used.

Referenced by ripley::Brick::addToMatrixAndRHS(), ripley::Rectangle::addToMatrixAndRHS(), dudley::Assemble_PDE_Points(), finley::Assemble_PDE_Points(), dudley::Assemble_PDE_Single_2D(), finley::Assemble_PDE_Single_2D(), dudley::Assemble_PDE_Single_3D(), finley::Assemble_PDE_Single_3D(), finley::Assemble_PDE_Single_C(), dudley::Assemble_PDE_System_2D(), finley::Assemble_PDE_System_2D(), dudley::Assemble_PDE_System_3D(), finley::Assemble_PDE_System_3D(), finley::Assemble_PDE_System_C(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySingle(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySingle(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySingleReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySingleReduced(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDEBoundarySystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDEBoundarySystemReduced(), ripley::DefaultAssembler2D< Scalar >::assemblePDESingle(), ripley::DefaultAssembler3D< Scalar >::assemblePDESingle(), ripley::DefaultAssembler2D< Scalar >::assemblePDESingleReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDESingleReduced(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystem(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystem(), ripley::DefaultAssembler2D< Scalar >::assemblePDESystemReduced(), ripley::DefaultAssembler3D< Scalar >::assemblePDESystemReduced(), BOOST_PYTHON_MODULE(), escript::FunctionSpace::getSize(), and finley::util::hasReducedIntegrationOrder().

◆ setEscriptParamInt()

void escript::setEscriptParamInt ( const std::string &  name,
int  value 
)
inline

Set the value of a named parameter. See listEscriptParams() for available parameters.

References escript::EscriptParams::setInt().

Referenced by BOOST_PYTHON_MODULE().

◆ setNumberOfThreads()

void escript::setNumberOfThreads ( const int  num_threads)

set the number of threads

Warning
Use of this method is strongly discouraged. It may be deprecated in future.

Referenced by BOOST_PYTHON_MODULE().

◆ shipString()

bool escript::shipString ( const char *  src,
char **  dest,
MPI_Comm comm 
)

ensure that the any ranks with an empty src argument end up with the string from one of the other ranks. With no MPI, it makes dest point at a copy of src.

References MPI_INT, MPI_MAX, and escript::JMPI_::rank.

Referenced by escript::SplitWorld::addJobPerWorld(), dudley::NodeFile::createDOFMappingAndCoupling(), finley::NodeFile::createDOFMappingAndCoupling(), escript::SplitWorld::distributeJobs(), load(), escript::SplitWorld::runJobs(), and paso::SystemMatrixPattern::SystemMatrixPattern().

◆ solution()

FunctionSpace escript::solution ( const AbstractDomain domain)

◆ supports_cplx()

bool escript::supports_cplx ( escript::ES_optype  operation)

◆ swapaxes()

template<class VEC >
void escript::swapaxes ( const VEC &  in,
const DataTypes::ShapeType inShape,
typename VEC::size_type  inOffset,
VEC &  ev,
const DataTypes::ShapeType evShape,
typename VEC::size_type  evOffset,
int  axis0,
int  axis1 
)
inline

swaps the components axis0 and axis1.

Parameters
in- vector containing the input matrix
inShape- shape of the input matrix
inOffset- the beginning of the input matrix within the vector "in"
ev- vector to store the output matrix
evShape- expected shape of the output matrix
evOffset- starting location for storing the output matrix in vector ev
axis0- axis index
axis1- axis index

References ESCRIPT_DLL_API, escript::DataTypes::getRank(), and escript::DataTypes::getRelIndex().

Referenced by escript::DataAbstract::hasNoSamples(), escript::DataTagged::isTagged(), escript::DataLazy::resolveNodeNP1OUT_2P(), escript::DataConstant::swapaxes(), escript::DataExpanded::swapaxes(), and escript::DataTagged::swapaxes().

◆ symmetric()

template<typename VEC >
void escript::symmetric ( const VEC &  in,
const DataTypes::ShapeType inShape,
typename VEC::size_type  inOffset,
VEC &  ev,
const DataTypes::ShapeType evShape,
typename VEC::size_type  evOffset 
)
inline

computes a symmetric matrix from your square matrix A: (A + transpose(A)) / 2

Parameters
in- vector containing the matrix A
inShape- shape of the matrix A
inOffset- the beginning of A within the vector in
ev- vector to store the output matrix
evShape- expected shape of the output matrix
evOffset- starting location for storing ev in vector ev

References escript::DataTypes::getRank(), and escript::DataTypes::getRelIndex().

Referenced by escript::DataAbstract::hasNoSamples(), escript::DataTagged::isTagged(), ripley::RipleyDomain::newSystemMatrix(), escript::DataLazy::resolveNodeNP1OUT(), escript::DataConstant::symmetric(), escript::DataExpanded::symmetric(), and escript::DataTagged::symmetric().

◆ Tensor()

Data escript::Tensor ( double  value,
const FunctionSpace what,
bool  expanded 
)

Return a Data object containing tensor datapoints. ie: rank 2 data-points.

References escript::FunctionSpace::getDomain().

Referenced by BOOST_PYTHON_MODULE(), and TensorFromObj().

◆ Tensor3()

Data escript::Tensor3 ( double  value,
const FunctionSpace what,
bool  expanded 
)

Return a Data object containing tensor3 datapoints. ie: rank 3 data-points.

References escript::FunctionSpace::getDomain().

Referenced by BOOST_PYTHON_MODULE(), and Tensor3FromObj().

◆ Tensor3FromObj() [1/2]

Data escript::Tensor3FromObj ( bp::object  o,
const FunctionSpace what,
bool  expanded 
)

◆ Tensor3FromObj() [2/2]

Data escript::Tensor3FromObj ( boost::python::object  o,
const FunctionSpace what = FunctionSpace(),
bool  expanded = false 
)

◆ Tensor4()

Data escript::Tensor4 ( double  value,
const FunctionSpace what,
bool  expanded 
)

Return a Data object containing tensor4 datapoints. ie: rank 4 data-points.

References escript::FunctionSpace::getDomain().

Referenced by BOOST_PYTHON_MODULE(), and Tensor4FromObj().

◆ Tensor4FromObj() [1/2]

Data escript::Tensor4FromObj ( boost::python::object  o,
const FunctionSpace what = FunctionSpace(),
bool  expanded = false 
)

◆ Tensor4FromObj() [2/2]

Data escript::Tensor4FromObj ( bp::object  o,
const FunctionSpace what,
bool  expanded 
)

◆ tensor_unary_array_operation()

template<class IN , typename OUT >
void escript::tensor_unary_array_operation ( const size_t  size,
const IN *  arg1,
OUT *  argRes,
escript::ES_optype  operation,
DataTypes::real_t  tol = 0 
)
inline

◆ tensor_unary_array_operation_real()

template<class IN >
void escript::tensor_unary_array_operation_real ( const size_t  size,
const IN *  arg1,
DataTypes::real_t argRes,
escript::ES_optype  operation,
DataTypes::real_t  tol = 0 
)
inline

References ABS, abs_f(), EZ, fabs(), IMAG, NEZ, and REAL.

Referenced by C_TensorUnaryOperation().

◆ TensorFromObj() [1/2]

Data escript::TensorFromObj ( bp::object  o,
const FunctionSpace what,
bool  expanded 
)

◆ TensorFromObj() [2/2]

Data escript::TensorFromObj ( boost::python::object  o,
const FunctionSpace what = FunctionSpace(),
bool  expanded = false 
)

◆ trace()

template<class VEC >
void escript::trace ( const VEC &  in,
const DataTypes::ShapeType inShape,
typename VEC::size_type  inOffset,
VEC &  ev,
const DataTypes::ShapeType evShape,
typename VEC::size_type  evOffset,
int  axis_offset 
)
inline

computes the trace of a matrix

Parameters
in- vector containing the input matrix
inShape- shape of the input matrix
inOffset- the beginning of the input matrix within the vector "in"
ev- vector to store the output matrix
evShape- expected shape of the output matrix
evOffset- starting location for storing the output matrix in vector ev
axis_offset

References ESCRIPT_DLL_API, escript::DataTypes::getRank(), escript::DataTypes::getRelIndex(), and escript::DataTypes::noValues().

Referenced by getStringFromPyException(), escript::DataAbstract::hasNoSamples(), escript::DataTagged::isTagged(), escript::DataLazy::resolveNodeNP1OUT_P(), escript::DataConstant::trace(), escript::DataExpanded::trace(), and escript::DataTagged::trace().

◆ transpose()

template<class VEC >
void escript::transpose ( const VEC &  in,
const DataTypes::ShapeType inShape,
typename VEC::size_type  inOffset,
VEC &  ev,
const DataTypes::ShapeType evShape,
typename VEC::size_type  evOffset,
int  axis_offset 
)
inline

Transpose each data point of this Data object around the given axis.

Parameters
in- vector containing the input matrix
inShape- shape of the input matrix
inOffset- the beginning of the input matrix within the vector "in"
ev- vector to store the output matrix
evShape- expected shape of the output matrix
evOffset- starting location for storing the output matrix in vector ev
axis_offset

References ESCRIPT_DLL_API, escript::DataTypes::getRank(), and escript::DataTypes::getRelIndex().

Referenced by escript::DataAbstract::hasNoSamples(), escript::DataTagged::isTagged(), escript::DataLazy::resolveNodeNP1OUT_P(), escript::DataConstant::transpose(), escript::DataExpanded::transpose(), and escript::DataTagged::transpose().

◆ ValueErrorTranslator()

void escript::ValueErrorTranslator ( const EsysException e)

Function which translates an EsysException into a python ValueError.

References escript::EsysException::what().

◆ Vector()

Data escript::Vector ( double  value,
const FunctionSpace what,
bool  expanded 
)

◆ VectorFromObj() [1/2]

Data escript::VectorFromObj ( bp::object  o,
const FunctionSpace what,
bool  expanded 
)

◆ VectorFromObj() [2/2]

Data escript::VectorFromObj ( boost::python::object  o,
const FunctionSpace what = FunctionSpace(),
bool  expanded = false 
)

◆ vectorHasNaN()

bool escript::vectorHasNaN ( const DataTypes::RealVectorType in,
DataTypes::RealVectorType::size_type  inOffset,
size_t  count 
)
inline

returns true if the vector contains NaN

References nancheck().

Referenced by escript::Data::lazyAlgWorker().

◆ vectorInKernel2()

void escript::vectorInKernel2 ( const DataTypes::real_t  A00,
const DataTypes::real_t  A10,
const DataTypes::real_t  A01,
const DataTypes::real_t  A11,
DataTypes::real_t V0,
DataTypes::real_t V1 
)
inline

returns a non-zero vector in the kernel of [[A00,A01],[A01,A11]] assuming that the kernel dimension is at least 1.

Parameters
A00Input - matrix component
A10Input - matrix component
A01Input - matrix component
A11Input - matrix component
V0Output - vector component
V1Output - vector component

References fabs().

Referenced by eigenvalues_and_eigenvectors2(), and vectorInKernel3__nonZeroA00().

◆ vectorInKernel3__nonZeroA00()

void escript::vectorInKernel3__nonZeroA00 ( const DataTypes::real_t  A00,
const DataTypes::real_t  A10,
const DataTypes::real_t  A20,
const DataTypes::real_t  A01,
const DataTypes::real_t  A11,
const DataTypes::real_t  A21,
const DataTypes::real_t  A02,
const DataTypes::real_t  A12,
const DataTypes::real_t  A22,
DataTypes::real_t V0,
DataTypes::real_t V1,
DataTypes::real_t V2 
)
inline

returns a non-zero vector in the kernel of [[A00,A01,A02],[A10,A11,A12],[A20,A21,A22]] assuming that the kernel dimension is at least 1 and A00 is non zero.

Parameters
A00Input - matrix component
A10Input - matrix component
A20Input - matrix component
A01Input - matrix component
A11Input - matrix component
A21Input - matrix component
A02Input - matrix component
A12Input - matrix component
A22Input - matrix component
V0Output - vector component
V1Output - vector component
V2Output - vector component

References vectorInKernel2().

Referenced by eigenvalues_and_eigenvectors3().

◆ voidPtrFromBinOpFnPtr()

void * escript::voidPtrFromBinOpFnPtr ( binOpFnPtr  f)

Why do we have this? Only to act as an inverse to the above function

Variable Documentation

◆ escriptParams

EscriptParams escript::escriptParams