Skip to content
Snippets Groups Projects
Select Git revision
  • c46c59e11354fa0a5697ecb5822a3f40008da476
  • master default protected
  • hierarchical-basis
  • revert-ef4a3a4f
  • patch_releases_4_14
  • overlaps_tags_and_distributed_export
  • overlaps_tags_and_distributed_export_rebased
  • relaying
  • alphashapes
  • steplayer
  • bl
  • pluginMeshQuality
  • fixBugsAmaury
  • new_export_boris
  • oras_vs_osm
  • reassign_partitions
  • distributed_fwi
  • rename-classes
  • fix/fortran-api-example-t4
  • robust_partitions
  • reducing_files
  • gmsh_4_14_0
  • gmsh_4_13_1
  • gmsh_4_13_0
  • gmsh_4_12_2
  • gmsh_4_12_1
  • gmsh_4_12_0
  • gmsh_4_11_1
  • 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
41 results

gmsh.html

Blame
  • 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()
    {
    }