LCOV - code coverage report
Current view: top level - src - UnstructuredElemSeq.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 35 41 85.4 %
Date: 2020-12-16 07:07:30 Functions: 12 13 92.3 %
Branches: 14 28 50.0 %

           Branch data     Line data    Source code
       1                 :            : #include "UnstructuredElemSeq.hpp"
       2                 :            : #include "SequenceData.hpp"
       3                 :            : #include "moab/CN.hpp"
       4                 :            : 
       5                 :            : namespace moab
       6                 :            : {
       7                 :            : 
       8                 :         43 : UnstructuredElemSeq::UnstructuredElemSeq( EntityHandle shandle, EntityID entity_count, unsigned nodes_per_entity,
       9                 :            :                                           SequenceData* dat )
      10                 :         43 :     : ElementSequence( shandle, entity_count, nodes_per_entity, dat )
      11                 :            : {
      12                 :         43 : }
      13                 :            : 
      14                 :        678 : UnstructuredElemSeq::UnstructuredElemSeq( EntityHandle shandle, EntityID entity_count, unsigned nodes_per_entity,
      15                 :            :                                           EntityID data_size )
      16                 :            :     : ElementSequence( shandle, entity_count, nodes_per_entity,
      17         [ +  - ]:        678 :                        new SequenceData( 1, shandle, shandle + data_size - 1 ) )
      18                 :            : {
      19 [ +  - ][ +  - ]:        678 :     data()->create_sequence_data( 0, nodes_per_entity * sizeof( EntityHandle ) );
      20                 :        678 : }
      21                 :            : 
      22         [ -  + ]:      51664 : UnstructuredElemSeq::~UnstructuredElemSeq() {}
      23                 :            : 
      24                 :     428931 : int UnstructuredElemSeq::values_per_entity() const
      25                 :            : {
      26                 :     428931 :     return nodes_per_element();
      27                 :            : }
      28                 :            : 
      29                 :      12211 : EntitySequence* UnstructuredElemSeq::split( EntityHandle here )
      30                 :            : {
      31 [ +  - ][ -  + ]:      12211 :     if( here <= start_handle() || here > end_handle() ) return 0;
                 [ -  + ]
      32                 :            : 
      33         [ +  - ]:      12211 :     return new UnstructuredElemSeq( *this, here );
      34                 :            : }
      35                 :            : 
      36                 :          2 : SequenceData* UnstructuredElemSeq::create_data_subset( EntityHandle start, EntityHandle end ) const
      37                 :            : {
      38         [ +  - ]:          2 :     int esize = nodes_per_element() * sizeof( EntityHandle );
      39 [ +  - ][ +  - ]:          2 :     return data()->subset( start, end, &esize );
      40                 :            : }
      41                 :            : 
      42                 :          4 : void UnstructuredElemSeq::get_const_memory_use( unsigned long& bytes_per_entity, unsigned long& size_of_sequence ) const
      43                 :            : {
      44                 :          4 :     bytes_per_entity = nodes_per_element() * sizeof( EntityHandle );
      45                 :          4 :     size_of_sequence = sizeof( *this );
      46                 :          4 : }
      47                 :            : 
      48                 :          0 : ErrorCode UnstructuredElemSeq::get_connectivity( EntityHandle handle, std::vector< EntityHandle >& connect,
      49                 :            :                                                  bool topological ) const
      50                 :            : {
      51                 :          0 :     EntityHandle const* conn = get_array() + nodes_per_element() * ( handle - start_handle() );
      52         [ #  # ]:          0 :     int len                  = topological ? CN::VerticesPerEntity( type() ) : nodes_per_element();
      53                 :          0 :     connect.reserve( connect.size() + len );
      54                 :          0 :     std::copy( conn, conn + len, std::back_inserter( connect ) );
      55                 :          0 :     return MB_SUCCESS;
      56                 :            : }
      57                 :            : 
      58                 :   23800738 : ErrorCode UnstructuredElemSeq::get_connectivity( EntityHandle handle, EntityHandle const*& conn_ptr, int& len,
      59                 :            :                                                  bool topological, std::vector< EntityHandle >* ) const
      60                 :            : {
      61                 :   23800738 :     conn_ptr = get_array() + nodes_per_element() * ( handle - start_handle() );
      62         [ +  + ]:   23800738 :     len      = topological ? CN::VerticesPerEntity( type() ) : nodes_per_element();
      63                 :   23800738 :     return MB_SUCCESS;
      64                 :            : }
      65                 :            : 
      66                 :     421348 : ErrorCode UnstructuredElemSeq::set_connectivity( EntityHandle handle, EntityHandle const* connect, int connect_length )
      67                 :            : {
      68         [ -  + ]:     421348 :     if( (unsigned)connect_length != nodes_per_element() ) return MB_INDEX_OUT_OF_RANGE;
      69                 :     421348 :     EntityHandle* conn_ptr = get_array() + nodes_per_element() * ( handle - start_handle() );
      70                 :     421348 :     std::copy( connect, connect + connect_length, conn_ptr );
      71                 :     421348 :     return MB_SUCCESS;
      72                 :            : }
      73                 :            : 
      74                 :       5187 : EntityHandle* UnstructuredElemSeq::get_connectivity_array()
      75                 :            : {
      76                 :       5187 :     return get_array();
      77                 :            : }
      78                 :            : 
      79                 :     417177 : ErrorCode UnstructuredElemSeq::push_back( EntityID count )
      80                 :            : {
      81                 :     417177 :     return EntitySequence::append_entities( count );
      82                 :            : }
      83                 :            : 
      84                 :         34 : ErrorCode UnstructuredElemSeq::push_front( EntityID count )
      85                 :            : {
      86                 :         34 :     return EntitySequence::prepend_entities( count );
      87                 :            : }
      88                 :            : 
      89                 :            : }  // namespace moab

Generated by: LCOV version 1.11