xref: /libCEED/julia/LibCEED.jl/src/Globals.jl (revision 2eb0be0b68ebb7cb25cc038250732c3239325ad2)
144554ea0SWill Pazner"""
244554ea0SWill Pazner    CeedScalar
344554ea0SWill Pazner
4aeebdb96SWill PaznerScalar (floating point) type. Typically equivalent to `Float64`, but libCEED can be configured at
5aeebdb96SWill Paznercompile-time to use `Float32`. See also `get_scalar_type`.
644554ea0SWill Pazner"""
744554ea0SWill Paznerconst CeedScalar = C.CeedScalar
880a9ef05SNatalie Beams
944554ea0SWill Pazner"""
1044554ea0SWill Pazner    CeedInt
1144554ea0SWill Pazner
1244554ea0SWill PaznerInteger type, used for indexing. Equivalent to `Int32`.
1344554ea0SWill Pazner"""
1444554ea0SWill Paznerconst CeedInt = C.CeedInt
1544554ea0SWill Pazner
1644554ea0SWill Pazner"""
17*2eb0be0bSWill Pazner    CeedSize
18*2eb0be0bSWill Pazner
19*2eb0be0bSWill PaznerInteger type, used for array sizes. Equivalent to `Int`.
20*2eb0be0bSWill Pazner"""
21*2eb0be0bSWill Paznerconst CeedSize = C.CeedSize
22*2eb0be0bSWill Pazner
23*2eb0be0bSWill Pazner"""
2444554ea0SWill Pazner    QuadMode
2544554ea0SWill Pazner
2644554ea0SWill PaznerOne of `GAUSS` or `GAUSS_LOBATTO`.
2744554ea0SWill Pazner"""
2844554ea0SWill Paznerconst QuadMode = C.CeedQuadMode
2944554ea0SWill Paznerconst GAUSS = C.CEED_GAUSS
3044554ea0SWill Paznerconst GAUSS_LOBATTO = C.CEED_GAUSS_LOBATTO
3144554ea0SWill Pazner
3244554ea0SWill Pazner"""
3344554ea0SWill Pazner    MemType
3444554ea0SWill Pazner
3544554ea0SWill PaznerOne of `MEM_HOST` or `MEM_DEVICE`.
3644554ea0SWill Pazner"""
3744554ea0SWill Paznerconst MemType = C.CeedMemType
3844554ea0SWill Paznerconst MEM_HOST = C.CEED_MEM_HOST
3944554ea0SWill Paznerconst MEM_DEVICE = C.CEED_MEM_DEVICE
4044554ea0SWill Pazner
4144554ea0SWill Pazner"""
4244554ea0SWill Pazner    CopyMode
4344554ea0SWill Pazner
4444554ea0SWill PaznerOne of `COPY_VALUES`, `USE_POINTER` or `OWN_POINTER`.
4544554ea0SWill Pazner
4644554ea0SWill Pazner`OWN_POINTER` is not typically supported for objects created in Julia, because those must be
4744554ea0SWill Paznerdestroyed by the garbage collector, and cannot be freed from C.
4844554ea0SWill Pazner"""
4944554ea0SWill Paznerconst CopyMode = C.CeedCopyMode
5044554ea0SWill Paznerconst COPY_VALUES = C.CEED_COPY_VALUES
5144554ea0SWill Paznerconst USE_POINTER = C.CEED_USE_POINTER
5244554ea0SWill Paznerconst OWN_POINTER = C.CEED_OWN_POINTER
5344554ea0SWill Pazner
5444554ea0SWill Pazner"""
5544554ea0SWill Pazner    EvalMode
5644554ea0SWill Pazner
5744554ea0SWill PaznerEvaluation mode used in the specification of input and output fields for Q-functions, e.g.
5844554ea0SWill Paznerin [`@interior_qf`](@ref).
5944554ea0SWill Pazner
6044554ea0SWill PaznerOne of:
6144554ea0SWill Pazner- `EVAL_NONE`
6244554ea0SWill Pazner- `EVAL_INTERP`
6344554ea0SWill Pazner- `EVAL_GRAD`
6444554ea0SWill Pazner- `EVAL_DIV`
6544554ea0SWill Pazner- `EVAL_CURL`
6644554ea0SWill Pazner- `EVAL_WEIGHT`
6744554ea0SWill Pazner
6844554ea0SWill PaznerSee the [libCEED
6913964f07SJed Browndocumentation](https://libceed.org/en/latest/api/CeedBasis/?highlight=EVAL_MODE#c.CeedEvalMode)
7044554ea0SWill Paznerfor further information.
7144554ea0SWill Pazner"""
7244554ea0SWill Paznerconst EvalMode = C.CeedEvalMode
7344554ea0SWill Paznerconst EVAL_NONE = C.CEED_EVAL_NONE
7444554ea0SWill Paznerconst EVAL_INTERP = C.CEED_EVAL_INTERP
7544554ea0SWill Paznerconst EVAL_GRAD = C.CEED_EVAL_GRAD
7644554ea0SWill Paznerconst EVAL_DIV = C.CEED_EVAL_DIV
7744554ea0SWill Paznerconst EVAL_CURL = C.CEED_EVAL_CURL
7844554ea0SWill Paznerconst EVAL_WEIGHT = C.CEED_EVAL_WEIGHT
7944554ea0SWill Pazner
8044554ea0SWill Pazner"""
8144554ea0SWill Pazner    NormType
8244554ea0SWill Pazner
8344554ea0SWill PaznerDenotes type of vector norm. One of `NORM_1`, `NORM_2`, or `NORM_MAX`.
8444554ea0SWill Pazner"""
8544554ea0SWill Paznerconst NormType = C.CeedNormType
8644554ea0SWill Paznerconst NORM_1 = C.CEED_NORM_1
8744554ea0SWill Paznerconst NORM_2 = C.CEED_NORM_2
8844554ea0SWill Paznerconst NORM_MAX = C.CEED_NORM_MAX
8944554ea0SWill Pazner
9044554ea0SWill Pazner"""
9144554ea0SWill Pazner    TransposeMose
9244554ea0SWill Pazner
9344554ea0SWill PaznerDenotes whether a linear transformation or its transpose should be applied. Either
9444554ea0SWill Pazner`NOTRANSPOSE` or `TRANSPOSE`.
9544554ea0SWill Pazner"""
9644554ea0SWill Paznerconst TransposeMode = C.CeedTransposeMode
9744554ea0SWill Paznerconst NOTRANSPOSE = C.CEED_NOTRANSPOSE
9844554ea0SWill Paznerconst TRANSPOSE = C.CEED_TRANSPOSE
9944554ea0SWill Pazner
10044554ea0SWill Pazner"""
10144554ea0SWill Pazner    Topology
10244554ea0SWill Pazner
10344554ea0SWill PaznerType of basis shape to create non-tensor H1 element basis. One of `LINE`, `TRIANGLE`,
10444554ea0SWill Pazner`QUAD`, `TET`, `PYRAMID`, `PRISM`, or `HEX`.
10544554ea0SWill Pazner
10644554ea0SWill PaznerThe dimension can be extracted with bitshift:
10744554ea0SWill Pazner
10844554ea0SWill Pazner    dim = Int(topology) >> 16
10944554ea0SWill Pazner"""
11044554ea0SWill Paznerconst Topology = C.CeedElemTopology
11150c301a5SRezgar Shakericonst LINE = C.CEED_TOPOLOGY_LINE
11250c301a5SRezgar Shakericonst TRIANGLE = C.CEED_TOPOLOGY_TRIANGLE
11350c301a5SRezgar Shakericonst QUAD = C.CEED_TOPOLOGY_QUAD
11450c301a5SRezgar Shakericonst TET = C.CEED_TOPOLOGY_TET
11550c301a5SRezgar Shakericonst PYRAMID = C.CEED_TOPOLOGY_PYRAMID
11650c301a5SRezgar Shakericonst PRISM = C.CEED_TOPOLOGY_PRISM
11750c301a5SRezgar Shakericonst HEX = C.CEED_TOPOLOGY_HEX
11844554ea0SWill Pazner
11944554ea0SWill Paznerfunction set_globals()
12044554ea0SWill Pazner    @doc """
12144554ea0SWill Pazner        STRIDES_BACKEND
12244554ea0SWill Pazner
12344554ea0SWill Pazner    Indicate that the stride is determined by the backend.
12444554ea0SWill Pazner    """
12544554ea0SWill Pazner    global STRIDES_BACKEND = C.CEED_STRIDES_BACKEND[]
12644554ea0SWill Paznerend
127