Branch data Line data Source code
1 : : /**
2 : : * MOAB, a Mesh-Oriented datABase, is a software component for creating,
3 : : * storing and accessing finite element mesh data.
4 : : *
5 : : * Copyright 2008 Sandia Corporation. Under the terms of Contract
6 : : * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
7 : : * retains certain rights in this software.
8 : : *
9 : : * This library is free software; you can redistribute it and/or
10 : : * modify it under the terms of the GNU Lesser General Public
11 : : * License as published by the Free Software Foundation; either
12 : : * version 2.1 of the License, or (at your option) any later version.
13 : : *
14 : : */
15 : :
16 : : #include "SweptElementSeq.hpp"
17 : : #include "SweptVertexData.hpp"
18 : : #include "SweptElementData.hpp"
19 : : #include "moab/Interface.hpp"
20 : : #include "moab/ReadUtilIface.hpp"
21 : : #include "moab/CN.hpp"
22 : : #include "Internals.hpp"
23 : :
24 : : namespace moab
25 : : {
26 : :
27 : 0 : SweptElementSeq::SweptElementSeq( EntityHandle shandle, const int imin, const int jmin, const int kmin, const int imax,
28 : : const int jmax, const int kmax, const int* Cq )
29 : : : ElementSequence( shandle, ScdElementData::calc_num_entities( shandle, imax - imin, jmax - jmin, kmax - kmin ),
30 : 0 : CN::VerticesPerEntity( TYPE_FROM_HANDLE( shandle ) ),
31 [ # # ]: 0 : new SweptElementData( shandle, imin, jmin, kmin, imax, jmax, kmax, Cq ) )
32 : : {
33 : 0 : }
34 : :
35 [ # # ]: 0 : SweptElementSeq::~SweptElementSeq() {}
36 : :
37 : 0 : ErrorCode SweptElementSeq::get_connectivity( EntityHandle handle, std::vector< EntityHandle >& connect,
38 : : bool /*topological*/ ) const
39 : : {
40 : : int i, j, k;
41 [ # # ]: 0 : ErrorCode rval = get_params( handle, i, j, k );
42 [ # # ][ # # ]: 0 : if( MB_SUCCESS == rval ) rval = get_params_connectivity( i, j, k, connect );
43 : 0 : return rval;
44 : : }
45 : :
46 : 0 : ErrorCode SweptElementSeq::get_connectivity( EntityHandle handle, EntityHandle const*& connect, int& connect_length,
47 : : bool topo, std::vector< EntityHandle >* storage ) const
48 : : {
49 [ # # ]: 0 : if( !storage )
50 : : {
51 : 0 : connect = 0;
52 : 0 : connect_length = 0;
53 : 0 : return MB_NOT_IMPLEMENTED;
54 : : }
55 : :
56 : 0 : storage->clear();
57 : 0 : ErrorCode rval = get_connectivity( handle, *storage, topo );
58 : 0 : connect = &( *storage )[0];
59 : 0 : connect_length = storage->size();
60 : 0 : return rval;
61 : : }
62 : :
63 : 0 : ErrorCode SweptElementSeq::set_connectivity( EntityHandle, EntityHandle const*, int )
64 : : {
65 : 0 : return MB_NOT_IMPLEMENTED;
66 : : }
67 : :
68 : 0 : EntityHandle* SweptElementSeq::get_connectivity_array()
69 : : {
70 : 0 : return 0;
71 : : }
72 : :
73 : 0 : int SweptElementSeq::values_per_entity() const
74 : : {
75 : 0 : return -1;
76 : : } // never reuse freed handles for swept elements
77 : :
78 : 0 : EntitySequence* SweptElementSeq::split( EntityHandle here )
79 : : {
80 [ # # ]: 0 : return new SweptElementSeq( *this, here );
81 : : }
82 : :
83 : 0 : SequenceData* SweptElementSeq::create_data_subset( EntityHandle, EntityHandle ) const
84 : : {
85 : 0 : return 0;
86 : : }
87 : :
88 : 0 : void SweptElementSeq::get_const_memory_use( unsigned long& bytes_per_entity, unsigned long& sequence_size ) const
89 : : {
90 : 0 : sequence_size = sizeof( *this );
91 : 0 : bytes_per_entity = sdata()->get_memory_use() / sdata()->size();
92 : 0 : }
93 : :
94 [ + - ][ + - ]: 228 : } // namespace moab
|