1*0ef72598Sjeremylt# Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at 2*0ef72598Sjeremylt# the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights 3*0ef72598Sjeremylt# reserved. See files LICENSE and NOTICE for details. 4*0ef72598Sjeremylt# 5*0ef72598Sjeremylt# This file is part of CEED, a collection of benchmarks, miniapps, software 6*0ef72598Sjeremylt# libraries and APIs for efficient high-order finite element and spectral 7*0ef72598Sjeremylt# element discretizations for exascale applications. For more information and 8*0ef72598Sjeremylt# source code availability see http://github.com/ceed. 9*0ef72598Sjeremylt# 10*0ef72598Sjeremylt# The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, 11*0ef72598Sjeremylt# a collaborative effort of two U.S. Department of Energy organizations (Office 12*0ef72598Sjeremylt# of Science and the National Nuclear Security Administration) responsible for 13*0ef72598Sjeremylt# the planning and preparation of a capable exascale ecosystem, including 14*0ef72598Sjeremylt# software, applications, hardware, advanced system engineering and early 15*0ef72598Sjeremylt# testbed platforms, in support of the nation's exascale computing imperative. 16*0ef72598Sjeremylt 17*0ef72598Sjeremylt# @file 18*0ef72598Sjeremylt# Test Ceed functionality 19*0ef72598Sjeremylt 20*0ef72598Sjeremyltimport libceed 21*0ef72598Sjeremyltimport pytest 22*0ef72598Sjeremylt 23*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 24*0ef72598Sjeremylt# Test creation and destruction of a Ceed object 25*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 26*0ef72598Sjeremylt 27*0ef72598Sjeremylt 28*0ef72598Sjeremyltdef test_000(ceed_resource): 29*0ef72598Sjeremylt ceed = libceed.Ceed(ceed_resource) 30*0ef72598Sjeremylt 31*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 32*0ef72598Sjeremylt# Test return of Ceed backend prefered memory type 33*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 34*0ef72598Sjeremylt 35*0ef72598Sjeremylt 36*0ef72598Sjeremyltdef test_001(ceed_resource): 37*0ef72598Sjeremylt ceed = libceed.Ceed(ceed_resource) 38*0ef72598Sjeremylt 39*0ef72598Sjeremylt memtype = ceed.get_preferred_memtype() 40*0ef72598Sjeremylt 41*0ef72598Sjeremylt assert memtype != "error" 42*0ef72598Sjeremylt 43*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 44*0ef72598Sjeremylt# Test return of a CEED object full resource name 45*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 46*0ef72598Sjeremylt 47*0ef72598Sjeremylt 48*0ef72598Sjeremyltdef test_002(ceed_resource): 49*0ef72598Sjeremylt ceed = libceed.Ceed(ceed_resource) 50*0ef72598Sjeremylt 51*0ef72598Sjeremylt resource = ceed.get_resource() 52*0ef72598Sjeremylt 53*0ef72598Sjeremylt assert resource == ceed_resource 54*0ef72598Sjeremylt 55*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 56*0ef72598Sjeremylt# Test viewing of a CEED object 57*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 58*0ef72598Sjeremylt 59*0ef72598Sjeremylt 60*0ef72598Sjeremyltdef test_003(ceed_resource): 61*0ef72598Sjeremylt ceed = libceed.Ceed(ceed_resource) 62*0ef72598Sjeremylt 63*0ef72598Sjeremylt print(ceed) 64*0ef72598Sjeremylt 65*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 66*0ef72598Sjeremylt# Test CEED object error handling 67*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 68*0ef72598Sjeremylt 69*0ef72598Sjeremylt 70*0ef72598Sjeremyltdef test_005(ceed_resource): 71*0ef72598Sjeremylt ceed = libceed.Ceed(ceed_resource) 72*0ef72598Sjeremylt 73*0ef72598Sjeremylt vec = ceed.Vector(5) 74*0ef72598Sjeremylt array1 = vec.get_array() 75*0ef72598Sjeremylt 76*0ef72598Sjeremylt exception_raised = False 77*0ef72598Sjeremylt try: 78*0ef72598Sjeremylt array2 = vec.get_array() 79*0ef72598Sjeremylt except BaseException: 80*0ef72598Sjeremylt exception_raised = True 81*0ef72598Sjeremylt 82*0ef72598Sjeremylt assert exception_raised 83*0ef72598Sjeremylt 84*0ef72598Sjeremylt vec.restore_array() 85*0ef72598Sjeremylt 86*0ef72598Sjeremylt# ------------------------------------------------------------------------------- 87