Skip to content
Snippets Groups Projects
Select Git revision
  • 19bbbe2de922ac084f07c6e400a59190112dde5e
  • master default protected
  • rgpu
  • oras_vs_osm
  • refactor_coupled
  • lumi-stable
  • fix-compile-without-mpi
  • clean_multirhs
  • oras_comp
  • hpddm_integration
  • blockProduct
  • multiSrcs
  • splitPrePro
  • reuseGCR
  • helmholtz_2d_ddm
  • fix-template-instanciantion-clang-macos
  • customSchwarz
  • hp-convergence-test
  • fix_krylov
  • solverCorrection
  • boris-martin-master-patch-52103
  • gmshddm_1_0_0
22 results

Subproblem2D.h

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