Skip to content
Snippets Groups Projects
Select Git revision
  • 84cefe8051f82cf44fd1cd8c1dd553a427fc78d1
  • master default protected
  • alphashapes
  • quadMeshingTools
  • cygwin_conv_path
  • macos_arm64
  • add-transfiniteautomatic-to-geo
  • patch_releases_4_10
  • HierarchicalHDiv
  • isuruf-master-patch-63355
  • hyperbolic
  • hexdom
  • hxt_update
  • jf
  • 1618-pythonocc-and-gmsh-api-integration
  • octreeSizeField
  • hexbl
  • alignIrregularVertices
  • getEdges
  • patch_releases_4_8
  • isuruf-master-patch-51992
  • gmsh_4_11_0
  • gmsh_4_10_5
  • gmsh_4_10_4
  • gmsh_4_10_3
  • gmsh_4_10_2
  • gmsh_4_10_1
  • gmsh_4_10_0
  • gmsh_4_9_5
  • gmsh_4_9_4
  • gmsh_4_9_3
  • gmsh_4_9_2
  • gmsh_4_9_1
  • gmsh_4_9_0
  • gmsh_4_8_4
  • gmsh_4_8_3
  • gmsh_4_8_2
  • gmsh_4_8_1
  • gmsh_4_8_0
  • gmsh_4_7_1
  • gmsh_4_7_0
41 results

delaunay3d.cpp

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    entity_data.cpp 1.49 KiB
    #include "entity_data.h"
    
    entity_data_gpu::entity_data_gpu()
    {
    }
    
    entity_data_gpu::entity_data_gpu(const entity_data_cpu& ed)
    {
        g_order = ed.g_order;
        a_order = ed.a_order;
    
        num_all_elems = num_elems_all_orientations(ed);
    
        std::vector<int32_t> eo;
        eo.reserve(num_all_elems);
        for (int32_t iO = 0; iO < ed.num_orientations; iO++)
        {
            for (size_t iT = 0; iT < ed.num_elems[iO]; iT++)
                eo.push_back(iO);
        }
        assert(eo.size() == num_all_elems);
        element_orientation.copyin(eo.data(), eo.size());
    
        num_bf = ed.num_bf;
        dof_base = ed.dof_base;
        flux_base = ed.flux_base;
        
        auto rows = ed.num_bf*ed.num_orientations;
        auto cols = ed.num_bf*3;
        MatxRM<double> dm = MatxRM<double>::Zero(rows, cols);
        for (size_t i = 0; i < ed.num_orientations; i++)
        {
            dm.block(i*num_bf, 0, num_bf, num_bf) =
                ed.differentiation_matrices.block(i*num_bf, 0, num_bf, num_bf).transpose();
            
            dm.block(i*num_bf, num_bf, num_bf, num_bf) =
                ed.differentiation_matrices.block(i*num_bf, num_bf, num_bf, num_bf).transpose();
    
            dm.block(i*num_bf, 2*num_bf, num_bf, num_bf) =
                ed.differentiation_matrices.block(i*num_bf, 2*num_bf, num_bf, num_bf).transpose();
        }
    
        differentiation_matrices.init(dm.data(), dm.size());
    
        jacobians.copyin(ed.jacobians.data(), ed.jacobians.size());
    
        cell_determinants.copyin(ed.cell_determinants.data(), ed.cell_determinants.size());
    
    }
    
    entity_data_gpu::~entity_data_gpu()
    {
    }