| /libCEED/interface/ |
| H A D | ceed-qfunctioncontext.c | 28 @param[in] ctx `CeedQFunctionContext` 29 @param[in] field_name Name of field 47 @param[in,out] ctx `CeedQFunctionContext` 48 @param[in] field_name Name of field to register 49 @param[in] field_offset Offset of field to register 50 @param[in] field_description Description of field, or `NULL` for none 51 @param[in] field_type @ref CeedContextFieldType 52 @param[in] num_values Number of values to register, must be contiguous in memory 105 @param[in,out] ctx `CeedQFunctionContext` to destroy user data 133 @param[in] ctx `CeedQFunctionContext` to view [all …]
|
| H A D | ceed-elemrestriction.c | 27 @param[in] offsets Array of shape `[num_elem, elem_size]` 29 @param[in] num_block Number of blocks 30 @param[in] num_elem Number of elements 31 @param[in] block_size Number of elements in a block 32 @param[in] elem_size Size of each element 53 @param[in] orients Array of shape `[num_elem, elem_size]` 55 @param[in] num_block Number of blocks 56 @param[in] num_elem Number of elements 57 @param[in] block_size Number of elements in a block 58 @param[in] elem_size Size of each element [all …]
|
| H A D | ceed-vector.c | 45 @param[in] vec `CeedVector` to view 46 @param[in] stream Filestream to write to 60 @param[in,out] vec Address of `CeedVector` to destroy 80 @brief Check for valid data in a `CeedVector` 82 @param[in] vec `CeedVector` to check validity 103 @brief Check for borrowed array of a specific @ref CeedMemType in a `CeedVector` 105 @param[in] vec `CeedVector` to check 106 @param[in] mem_type Memory type to check 123 @param[in] vec `CeedVector` to retrieve state 138 @param[in] vec `CeedVector` to retrieve state [all …]
|
| H A D | ceed-tensor.c | 25 @param[in,out] contract Address of `CeedTensorContract` to destroy 47 @param[in] ceed `Ceed` object used to create the `CeedTensorContract` 79 @param[in] contract `CeedTensorContract` to use 80 @param[in] A First index of `u`, `v` 81 @param[in] B Middle index of `u`, one index of `t` 82 @param[in] C Last index of `u`, `v` 83 @param[in] J Middle index of `v`, one index of `t` 84 @param[in] t Tensor array to contract against 85 …@param[in] t_mode Transpose mode for `t`, @ref CEED_NOTRANSPOSE for `t_jb` @ref CEED_TRANSPOSE … 86 @param[in] add Add mode [all …]
|
| H A D | ceed-basis.c | 40 @param[in] x Coordinate to evaluate Chebyshev polynomials at 41 @param[in] n Number of Chebyshev polynomials to evaluate, `n >= 2` 58 @param[in] x Coordinate to evaluate derivative of Chebyshev polynomials at 59 @param[in] n Number of Chebyshev polynomials to evaluate, `n >= 2` 87 @param[in,out] A Matrix to apply Householder reflection to, in place 88 @param[in] v Householder vector 89 @param[in] b Scaling factor 90 @param[in] m Number of rows in `A` 91 @param[in] n Number of columns in `A` 92 @param[in] row Row stride [all …]
|
| H A D | ceed-qfunction.c | 52 @param[in] name Name for this backend to respond to 53 …@param[in] source Absolute path to source of `CeedQFunction`, "\path\CEED_DIR\gallery\folder\f… 54 @param[in] vec_length Vector length. 56 @param[in] f Function pointer to evaluate action at quadrature points. 58 …@param[in] init Initialization function called by @ref CeedQFunctionCreateInteriorByName() w… 93 @param[in] field_name Name of `CeedQFunction` field 94 …@param[in] size Size of `CeedQFunction` field, (`num_comp * 1`) for @ref CEED_EVAL_NONE an… 95 @param[in] eval_mode @ref CEED_EVAL_NONE to use values directly, 117 @param[in] field `CeedQFunction` field to view 118 @param[in] field_number Number of field being viewed [all …]
|
| H A D | ceed-operator.c | 27 @param[in] ceed `Ceed` object for error handling 28 @param[in] qf_field `CeedQFunction` Field matching `CeedOperator` Field 29 @param[in] rstr `CeedOperator` Field `CeedElemRestriction` 30 @param[in] basis `CeedOperator` Field `CeedBasis` 87 @param[in] op_field `CeedOperator` Field to view 88 @param[in] qf_field `CeedQFunction` Field (carries field name) 89 @param[in] field_number Number of field being viewed 90 @param[in] tabs Tabs to append before each line 91 @param[in] is_input `true` for an input field; `false` for output field 92 @param[in] stream Stream to view to, e.g., `stdout` [all …]
|
| /libCEED/benchmarks/ |
| H A D | postprocess_base.py | 35 for line in fileinput.input(files): 37 if 'Running the tests using a total of' in line: 46 elif 'tasks per node' in line: 54 elif "CEED Benchmark Problem" in line: 61 data['case'] = 'scalar' if (('Problem 1' in line) or ('Problem 3' in line) 62 or ('Problem 5' in line)) else 'vector' 63 elif "Hostname" in line: 65 elif "Total ranks" in line: 67 elif "Ranks per compute node" in line: 70 elif 'libCEED Backend MemType' in line: [all …]
|
| /libCEED/doc/sphinx/source/ |
| H A D | libCEEDdev.md | 6 …iating a different {ref}`Ceed` object to create the other libCEED objects, in a [bridge pattern](h… 9 …, developers should place the function definitions for the user facing API in the header `/include… 10 The basic implementation of these functions should typically be placed in `/interface/*.c` files. 12 …e associated libCEED object can be added in `/include/ceed-impl.h`, with a corresponding `CEED_FTA… 13 Then in the creation of the backend specific implementation of the object, typically found in `/bac… 14 …pplemental functions intended to be used in the interface or by the backends may be added to the b… 15 The basic implementation of these functions should also be placed in `/interface/*.c` files. 18 …ons, it is generally recommended to include a basic CPU default implementation in `/interface/*.c`. 20 Once the user facing API and the default implementation are in place and verified correct via tests… 37 …Like the delegates above, this fallback {ref}`Ceed` object should be created and set in the backen… [all …]
|
| H A D | CONTRIBUTING.md | 11 In typical development, every commit should compile, be covered by the test suite, and pass all tes… 15 It is useful to create a WIP (work in progress) pull request for any long-running development so th… 17 …for a future developer (maybe you) that bisects and finds that a bug was introduced in your commit. 18 …ptions that are clear in your mind while committing are likely not in the mind of whomever (possib… 24 When contributors make a major contribution and support it, their names are included in the automat… 26 …ture branch) unless there is a specific reason to do so, in which case you should explain why in t… 39 …contribution was created in whole or in part by me and I have the right to submit it under the ope… 41 …reated in whole or in part by me, under the same open source license (unless I am permitted to sub… 53 1. make significant contributions to libCEED (in implementation, documentation, conceptualization, … 58 …ng DOI-bearing archives, shall offer co-authorship to all individuals listed in the `AUTHORS` file. [all …]
|
| H A D | libCEEDapi.md | 9 In finite element formulations, the weak form of a Partial Differential Equation (PDE) is evaluated… 10 In particular, when high-order finite elements or spectral elements are used, the resulting sparse … 12 We present here the notation and the mathematical formulation adopted in libCEED. 14 We start by considering the discrete residual $F(u)=0$ formulation in weak form. 21 where $\bm{x} \in \mathbb{R}^d \supset \Omega$. 23 We want to find $u$ in a suitable space $V_D$, such that 29 for all $\bm v$ in the corresponding homogeneous space $V_0$, where $\bm f_0$ and $\bm f_1$ contain… 30 We notice here that $\bm f_0$ represents all terms in {eq}`residual` which multiply the (possibly v… 31 For an n-component problems in $d$ dimensions, $\bm f_0 \in \mathbb{R}^n$ and $\bm f_1 \in \mathbb{… 34 …th fields and spatial dimensions while a single dot represents contraction in just one, which shou… [all …]
|
| /libCEED/julia/LibCEED.jl/docs/src/ |
| H A D | UserQFunctions.md | 5 natively in Julia. These user Q-functions work with both the CPU and CUDA 14 ## Apply mass Q-function in C 16 Before describing how to define user Q-functions in Julia, we will briefly given 17 an example of a user Q-function defined in C. This is the "apply mass" 28 const CeedScalar *const *in, 30 const CeedScalar *u = in[0], *qdata = in[1]; 45 In this example, the first input array is `u`, which is the value of the trial 62 ## Apply mass Q-function in Julia 64 We now replicate this Q-function in Julia. The main way of defining user 65 Q-functions in Julia is using the [`@interior_qf`](@ref) macro. The above C code [all …]
|
| /libCEED/examples/fluids/qfunctions/ |
| H A D | bc_freestream.h | 22 CEED_QFUNCTION_HELPER int Freestream(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar … in Freestream() argument 25 const CeedScalar(*q)[CEED_Q_VLA] = (const CeedScalar(*)[CEED_Q_VLA])in[0]; in Freestream() 26 const CeedScalar(*q_data_sur) = in[2]; in Freestream() 63 CEED_QFUNCTION(Freestream_Conserv_HLL)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScala… in Freestream_Conserv_HLL() argument 64 return Freestream(ctx, Q, in, out, STATEVAR_CONSERVATIVE, RIEMANN_HLL); in Freestream_Conserv_HLL() 67 CEED_QFUNCTION(Freestream_Prim_HLL)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *… in Freestream_Prim_HLL() argument 68 return Freestream(ctx, Q, in, out, STATEVAR_PRIMITIVE, RIEMANN_HLL); in Freestream_Prim_HLL() 71 CEED_QFUNCTION(Freestream_Entropy_HLL)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScala… in Freestream_Entropy_HLL() argument 72 return Freestream(ctx, Q, in, out, STATEVAR_ENTROPY, RIEMANN_HLL); in Freestream_Entropy_HLL() 75 CEED_QFUNCTION(Freestream_Conserv_HLLC)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScal… in Freestream_Conserv_HLLC() argument [all …]
|
| H A D | bc_slip.h | 15 CEED_QFUNCTION_HELPER int Slip(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const… in Slip() argument 17 const CeedScalar(*q)[CEED_Q_VLA] = (const CeedScalar(*)[CEED_Q_VLA])in[0]; in Slip() 18 const CeedScalar(*q_data_sur) = in[2]; in Slip() 51 CEED_QFUNCTION(Slip_Conserv)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *… in Slip_Conserv() argument 52 return Slip(ctx, Q, in, out, STATEVAR_CONSERVATIVE); in Slip_Conserv() 55 CEED_QFUNCTION(Slip_Prim)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out… in Slip_Prim() argument 56 return Slip(ctx, Q, in, out, STATEVAR_PRIMITIVE); in Slip_Prim() 59 CEED_QFUNCTION(Slip_Entropy)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *… in Slip_Entropy() argument 60 return Slip(ctx, Q, in, out, STATEVAR_ENTROPY); in Slip_Entropy() 63 CEED_QFUNCTION_HELPER int Slip_Jacobian(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScal… in Slip_Jacobian() argument [all …]
|
| H A D | mass.h | 26 CEED_QFUNCTION_HELPER int Mass_N(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *con… in Mass_N() argument 27 const CeedScalar(*u)[CEED_Q_VLA] = (const CeedScalar(*)[CEED_Q_VLA])in[0]; in Mass_N() 28 const CeedScalar(*q_data) = in[1]; in Mass_N() 37 …)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out) { return Mass_N(ctx, … in Mass_1() argument 39 …)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out) { return Mass_N(ctx, … in Mass_5() argument 41 …)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out) { return Mass_N(ctx, … in Mass_7() argument 43 …)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out) { return Mass_N(ctx, … in Mass_9() argument 45 …)(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out) { return Mass_N(ctx, … in Mass_22() argument
|
| /libCEED/tests/ |
| H A D | junit.py | 28 …argument('-np', '--pool-size', type=int, default=1, help='Number of test cases to run in parallel') 117 for condition in spec.only: 118 if (condition == 'cpu') and ('gpu' in resource): 133 if 'Backend does not implement' in stderr: 135 elif 'Can only provide HOST memory for this backend' in stderr: 137 elif 'Can only set HOST memory for this backend' in stderr: 139 elif 'Test not implemented in single precision' in stderr: 140 return f'Test not implemented in single precision' 141 elif 'No SYCL devices of the requested type are available' in stderr: 143 elif 'You may need to add --download-ctetgen or --download-tetgen' in stderr: [all …]
|
| H A D | t532-operator.h | 10 CEED_QFUNCTION(setup_mass)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *con… in setup_mass() argument 11 const CeedScalar *J = in[0], *weight = in[1]; in setup_mass() 19 CEED_QFUNCTION(setup_diff)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *con… in setup_diff() argument 23 // in[0] is Jacobians with shape [2, nc=2, Q] in setup_diff() 24 // in[1] is quadrature weights, size (Q) in setup_diff() 25 const CeedScalar *J = in[0], *qw = in[1]; in setup_diff() 47 CEED_QFUNCTION(apply)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *o… in apply() argument 48 // in[0] is gradient u, shape [2, nc=1, Q] in apply() 49 // in[1] is mass quadrature data, size (Q) in apply() 50 // in[2] is Poisson quadrature data, size (3*Q) in apply() [all …]
|
| H A D | t535-operator.h | 10 CEED_QFUNCTION(setup_mass)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *con… in setup_mass() argument 11 const CeedScalar *J = in[0], *weight = in[1]; in setup_mass() 19 CEED_QFUNCTION(setup_diff)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *con… in setup_diff() argument 23 // in[0] is Jacobians with shape [2, nc=2, Q] in setup_diff() 24 // in[1] is quadrature weights, size (Q) in setup_diff() 25 const CeedScalar *J = in[0], *qw = in[1]; in setup_diff() 47 CEED_QFUNCTION(apply)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *o… in apply() argument 48 // in[0] is gradient u, shape [2, nc=1, Q] in apply() 49 // in[1] is mass quadrature data, size (Q) in apply() 50 // in[2] is Poisson quadrature data, size (Q) in apply() [all …]
|
| H A D | t531-operator.h | 10 CEED_QFUNCTION(setup)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *o… in setup() argument 14 // in[0] is Jacobians with shape [2, nc=2, Q] in setup() 15 // in[1] is quadrature weights, size (Q) in setup() 16 const CeedScalar *J = in[0], *qw = in[1]; in setup() 38 CEED_QFUNCTION(diff)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *ou… in diff() argument 39 // in[0] is gradient u, shape [2, nc=1, Q] in diff() 40 // in[1] is quadrature data, size (3*Q) in diff() 41 const CeedScalar *du = in[0], *qd = in[1]; in diff() 56 CEED_QFUNCTION(diff_lin)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const… in diff_lin() argument 57 // in[0] is gradient u, shape [2, nc=1, Q] in diff_lin() [all …]
|
| H A D | junit_common.py | 43 default = [self.enum_type(v.lower()) for v in default] 55 values = [self.enum_type(v.lower()) for v in values] 219 … tuple[str, bool]: Tuple of the expected failure string and whether it was present in `stderr` 236 """Check whether `cgnsdiff` is an executable program in the current environment 247 return 'not found' not in proc.stderr.decode('utf-8') 251 """Helper function, checks if any of the substrings are included in the base string 254 base (str): Base string to search in 258 bool: True if any substrings are included in base string 260 return any((sub in base for sub in substrings)) 273 return any((base.startswith(prefix) for prefix in prefixes)) [all …]
|
| /libCEED/examples/ceed/ |
| H A D | index.md | 4 …l discretization libraries (MFEM, PETSc, Nek5000 etc.) see the subdirectories in {file}`examples/`. 10 This example is located in the subdirectory {file}`examples/ceed`. 12 Arbitrary mesh and solution orders in 1D, 2D, and 3D are supported from the same code. 21 Using the same notation as in {ref}`theoretical-framework`, we write here the vector $u(x)\equiv 1$… 27 with $v(x) \in \mathcal{V}_p = \{ v \in H^{1}(\Omega_e) \,|\, v \in P_p(\bm{I}), e=1,\ldots,N_e \}$… 33 This example is located in the subdirectory {file}`examples/ceed`. 35 Similar to {ref}`Ex1-Volume`, arbitrary mesh and solution orders in 1D, 2D, and 3D are supported fr… 43 In particular, we select $u(\bm x) = x_0 + x_1 + x_2$, for which $\nabla u = [1, 1, 1]^T$, and thus… 48 \nabla \cdot \nabla u = 0, \textrm{ for } \bm{x} \in \Omega , 67 This example is located in the subdirectory {file}`examples/ceed`. [all …]
|
| /libCEED/ |
| H A D | CONTRIBUTING.md | 11 In typical development, every commit should compile, be covered by the test suite, and pass all tes… 15 It is useful to create a WIP (work in progress) pull request for any long-running development so th… 17 …for a future developer (maybe you) that bisects and finds that a bug was introduced in your commit. 18 …ptions that are clear in your mind while committing are likely not in the mind of whomever (possib… 24 When contributors make a major contribution and support it, their names are included in the automat… 26 …ture branch) unless there is a specific reason to do so, in which case you should explain why in t… 39 …contribution was created in whole or in part by me and I have the right to submit it under the ope… 41 …reated in whole or in part by me, under the same open source license (unless I am permitted to sub… 53 1. make significant contributions to libCEED (in implementation, documentation, conceptualization, … 58 …ng DOI-bearing archives, shall offer co-authorship to all individuals listed in the `AUTHORS` file. [all …]
|
| /libCEED/examples/fluids/src/ |
| H A D | dm_utils.c | 20 @param[in] dm `DM` holding mesh 21 @param[in] domain_label Label for `DM` domain 22 @param[in] dm_field Index of `DM` field 45 …Comm((PetscObject)dm), PETSC_ERR_SUP, "Could not find dm_field %" PetscInt_FMT " in DS", dm_field); in DMFieldToDSField() 54 @param[in] ceed `Ceed` context 55 @param[in] dm `DMPlex` holding mesh 56 @param[in] domain_label `DMLabel` for `DMPlex` domain 57 @param[in] label_value Stratum value 58 @param[in] height Height of `DMPlex` topology 59 @param[in] dm_field Index of `DMPlex` field [all …]
|
| /libCEED/doc/papers/joss/ |
| H A D | paper.md | 68 Finite element methods are widely used to solve partial differential equations (PDE) in science and… 71 …asis functions is increased, resulting in $O(p^d)$ storage and $O(p^{2d})$ compute per degree of f… 76 …of implementations optimized for CPUs and GPUs, including support for just-in-time (JIT) compilati… 77 It is designed for convenient use in new and legacy software, and offers interfaces in C99 [@C99-la… 78 Users and library developers can integrate `libCEED` at a low level into existing applications in p… 79 Alternatively, users can utilize integrated `libCEED` support in MFEM [@MFEMlibrary; @mfem-paper]. 81 In addition to supporting applications and discretization libraries, `libCEED` provides a platform … 89 … stabilization of the problem [@Brown:2010] and the functions $u$ and $v$ live in a suitable space. 90 Integrals in the weak form are evaluated by summing over elements $e$, 95 …idual in operator notation (\autoref{fig:decomposition}), where $\mathcal P$ is an optional extern… [all …]
|
| /libCEED/python/tests/ |
| H A D | test-qfunctions.h | 11 CEED_QFUNCTION(setup_mass)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *con… in setup_mass() argument 12 // in[0] is quadrature weights, size (Q) in setup_mass() 13 // in[1] is Jacobians, size (Q) in setup_mass() 14 const CeedScalar *w = in[0], *J = in[1]; in setup_mass() 28 CEED_QFUNCTION(setup_mass_2d)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *… in setup_mass_2d() argument 29 // in[0] is quadrature weights, size (Q) in setup_mass_2d() 30 // in[1] is Jacobians with shape [2, nc=2, Q] in setup_mass_2d() 31 const CeedScalar *w = in[0], *J = in[1]; in setup_mass_2d() 45 CEED_QFUNCTION(apply_mass)(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *con… in apply_mass() argument 50 // in[0] is quadrature data, size (Q) in apply_mass() [all …]
|