ceed.h (572ff09c85e1de07bdd8bed4adbe59486604f1e4) ceed.h (d99fa3c5cd91a1690aedf0679cbf290d44fec74c)
1/// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at
2/// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights
3/// reserved. See files LICENSE and NOTICE for details.
4///
5/// This file is part of CEED, a collection of benchmarks, miniapps, software
6/// libraries and APIs for efficient high-order finite element and spectral
7/// element discretizations for exascale applications. For more information and
8/// source code availability see http://github.com/ceed.

--- 237 unchanged lines hidden (view full) ---

246 CeedScalar **array);
247CEED_EXTERN int CeedVectorGetArrayRead(CeedVector vec, CeedMemType mtype,
248 const CeedScalar **array);
249CEED_EXTERN int CeedVectorRestoreArray(CeedVector vec, CeedScalar **array);
250CEED_EXTERN int CeedVectorRestoreArrayRead(CeedVector vec,
251 const CeedScalar **array);
252CEED_EXTERN int CeedVectorNorm(CeedVector vec, CeedNormType type,
253 CeedScalar *norm);
1/// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at
2/// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights
3/// reserved. See files LICENSE and NOTICE for details.
4///
5/// This file is part of CEED, a collection of benchmarks, miniapps, software
6/// libraries and APIs for efficient high-order finite element and spectral
7/// element discretizations for exascale applications. For more information and
8/// source code availability see http://github.com/ceed.

--- 237 unchanged lines hidden (view full) ---

246 CeedScalar **array);
247CEED_EXTERN int CeedVectorGetArrayRead(CeedVector vec, CeedMemType mtype,
248 const CeedScalar **array);
249CEED_EXTERN int CeedVectorRestoreArray(CeedVector vec, CeedScalar **array);
250CEED_EXTERN int CeedVectorRestoreArrayRead(CeedVector vec,
251 const CeedScalar **array);
252CEED_EXTERN int CeedVectorNorm(CeedVector vec, CeedNormType type,
253 CeedScalar *norm);
254CEED_EXTERN int CeedVectorReciprocal(CeedVector vec);
254CEED_EXTERN int CeedVectorView(CeedVector vec, const char *fpfmt, FILE *stream);
255CEED_EXTERN int CeedVectorGetLength(CeedVector vec, CeedInt *length);
256CEED_EXTERN int CeedVectorDestroy(CeedVector *vec);
257
258CEED_EXTERN CeedRequest *const CEED_REQUEST_IMMEDIATE;
259CEED_EXTERN CeedRequest *const CEED_REQUEST_ORDERED;
260CEED_EXTERN int CeedRequestWait(CeedRequest *req);
261

--- 158 unchanged lines hidden (view full) ---

420 const CeedScalar *grad,
421 const CeedScalar *qref,
422 const CeedScalar *qweight, CeedBasis *basis);
423CEED_EXTERN int CeedBasisView(CeedBasis basis, FILE *stream);
424CEED_EXTERN int CeedBasisApply(CeedBasis basis, CeedInt nelem,
425 CeedTransposeMode tmode,
426 CeedEvalMode emode, CeedVector u, CeedVector v);
427CEED_EXTERN int CeedBasisGetDimension(CeedBasis basis, CeedInt *dim);
255CEED_EXTERN int CeedVectorView(CeedVector vec, const char *fpfmt, FILE *stream);
256CEED_EXTERN int CeedVectorGetLength(CeedVector vec, CeedInt *length);
257CEED_EXTERN int CeedVectorDestroy(CeedVector *vec);
258
259CEED_EXTERN CeedRequest *const CEED_REQUEST_IMMEDIATE;
260CEED_EXTERN CeedRequest *const CEED_REQUEST_ORDERED;
261CEED_EXTERN int CeedRequestWait(CeedRequest *req);
262

--- 158 unchanged lines hidden (view full) ---

421 const CeedScalar *grad,
422 const CeedScalar *qref,
423 const CeedScalar *qweight, CeedBasis *basis);
424CEED_EXTERN int CeedBasisView(CeedBasis basis, FILE *stream);
425CEED_EXTERN int CeedBasisApply(CeedBasis basis, CeedInt nelem,
426 CeedTransposeMode tmode,
427 CeedEvalMode emode, CeedVector u, CeedVector v);
428CEED_EXTERN int CeedBasisGetDimension(CeedBasis basis, CeedInt *dim);
429CEED_EXTERN int CeedBasisGetTopology(CeedBasis basis, CeedElemTopology *topo);
428CEED_EXTERN int CeedBasisGetNumComponents(CeedBasis basis, CeedInt *numcomp);
429CEED_EXTERN int CeedBasisGetNumNodes(CeedBasis basis, CeedInt *P);
430CEED_EXTERN int CeedBasisGetNumNodes1D(CeedBasis basis, CeedInt *P1d);
431CEED_EXTERN int CeedBasisGetNumQuadraturePoints(CeedBasis basis, CeedInt *Q);
432CEED_EXTERN int CeedBasisGetNumQuadraturePoints1D(CeedBasis basis,
433 CeedInt *Q1d);
434CEED_EXTERN int CeedBasisGetQRef(CeedBasis basis, const CeedScalar **qref);
435CEED_EXTERN int CeedBasisGetQWeights(CeedBasis basis,

--- 73 unchanged lines hidden (view full) ---

509CEED_EXTERN int CeedOperatorLinearAssembleDiagonal(CeedOperator op,
510 CeedVector assembled, CeedRequest *request);
511CEED_EXTERN int CeedOperatorLinearAssembleAddDiagonal(CeedOperator op,
512 CeedVector assembled, CeedRequest *request);
513CEED_EXTERN int CeedOperatorLinearAssemblePointBlockDiagonal(CeedOperator op,
514 CeedVector assembled, CeedRequest *request);
515CEED_EXTERN int CeedOperatorLinearAssembleAddPointBlockDiagonal(CeedOperator op,
516 CeedVector assembled, CeedRequest *request);
430CEED_EXTERN int CeedBasisGetNumComponents(CeedBasis basis, CeedInt *numcomp);
431CEED_EXTERN int CeedBasisGetNumNodes(CeedBasis basis, CeedInt *P);
432CEED_EXTERN int CeedBasisGetNumNodes1D(CeedBasis basis, CeedInt *P1d);
433CEED_EXTERN int CeedBasisGetNumQuadraturePoints(CeedBasis basis, CeedInt *Q);
434CEED_EXTERN int CeedBasisGetNumQuadraturePoints1D(CeedBasis basis,
435 CeedInt *Q1d);
436CEED_EXTERN int CeedBasisGetQRef(CeedBasis basis, const CeedScalar **qref);
437CEED_EXTERN int CeedBasisGetQWeights(CeedBasis basis,

--- 73 unchanged lines hidden (view full) ---

511CEED_EXTERN int CeedOperatorLinearAssembleDiagonal(CeedOperator op,
512 CeedVector assembled, CeedRequest *request);
513CEED_EXTERN int CeedOperatorLinearAssembleAddDiagonal(CeedOperator op,
514 CeedVector assembled, CeedRequest *request);
515CEED_EXTERN int CeedOperatorLinearAssemblePointBlockDiagonal(CeedOperator op,
516 CeedVector assembled, CeedRequest *request);
517CEED_EXTERN int CeedOperatorLinearAssembleAddPointBlockDiagonal(CeedOperator op,
518 CeedVector assembled, CeedRequest *request);
519CEED_EXTERN int CeedOperatorMultigridLevelCreate(CeedOperator opFine,
520 CeedVector PMultFine, CeedElemRestriction rstrCoarse, CeedBasis basisCoarse,
521 CeedOperator *opCoarse, CeedOperator *opProlong, CeedOperator *opRestrict);
522CEED_EXTERN int CeedOperatorMultigridLevelCreateTensorH1(
523 CeedOperator opFine, CeedVector PMultFine, CeedElemRestriction rstrCoarse,
524 CeedBasis basisCoarse, const CeedScalar *interpCtoF, CeedOperator *opCoarse,
525 CeedOperator *opProlong, CeedOperator *opRestrict);
526CEED_EXTERN int CeedOperatorMultigridLevelCreateH1(CeedOperator opFine,
527 CeedVector PMultFine, CeedElemRestriction rstrCoarse, CeedBasis basisCoarse,
528 const CeedScalar *interpCtoF, CeedOperator *opCoarse,
529 CeedOperator *opProlong, CeedOperator *opRestrict);
517CEED_EXTERN int CeedOperatorCreateFDMElementInverse(CeedOperator op,
518 CeedOperator *fdminv, CeedRequest *request);
519CEED_EXTERN int CeedOperatorView(CeedOperator op, FILE *stream);
520CEED_EXTERN int CeedOperatorApply(CeedOperator op, CeedVector in,
521 CeedVector out, CeedRequest *request);
522CEED_EXTERN int CeedOperatorApplyAdd(CeedOperator op, CeedVector in,
523 CeedVector out, CeedRequest *request);
524CEED_EXTERN int CeedOperatorDestroy(CeedOperator *op);

--- 25 unchanged lines hidden (view full) ---

550 @param[in] b The second integer to compare
551
552 @return The minimum of the two integers
553
554 @ref Utility
555**/
556static inline CeedInt CeedIntMin(CeedInt a, CeedInt b) { return a < b ? a : b; }
557
530CEED_EXTERN int CeedOperatorCreateFDMElementInverse(CeedOperator op,
531 CeedOperator *fdminv, CeedRequest *request);
532CEED_EXTERN int CeedOperatorView(CeedOperator op, FILE *stream);
533CEED_EXTERN int CeedOperatorApply(CeedOperator op, CeedVector in,
534 CeedVector out, CeedRequest *request);
535CEED_EXTERN int CeedOperatorApplyAdd(CeedOperator op, CeedVector in,
536 CeedVector out, CeedRequest *request);
537CEED_EXTERN int CeedOperatorDestroy(CeedOperator *op);

--- 25 unchanged lines hidden (view full) ---

563 @param[in] b The second integer to compare
564
565 @return The minimum of the two integers
566
567 @ref Utility
568**/
569static inline CeedInt CeedIntMin(CeedInt a, CeedInt b) { return a < b ? a : b; }
570
571/**
572 @brief Return maximum of two integers
573
574 @param[in] a The first integer to compare
575 @param[in] b The second integer to compare
576
577 @return The maximum of the two integers
578
579 @ref Utility
580**/
581static inline CeedInt CeedIntMax(CeedInt a, CeedInt b) { return a > b ? a : b; }
582
558#endif
583#endif