Skip to content
Snippets Groups Projects
maxwell_interface.cpp 1.53 KiB
Newer Older
Matteo Cicuttin's avatar
Matteo Cicuttin committed
#include "maxwell_interface.h"

namespace maxwell {

Matteo Cicuttin's avatar
Matteo Cicuttin committed
void
field::resize(size_t p_num_dofs)
Matteo Cicuttin's avatar
Matteo Cicuttin committed
{
    Ex = vecxd::Zero(p_num_dofs);
    Ey = vecxd::Zero(p_num_dofs);
    Ez = vecxd::Zero(p_num_dofs);
    Hx = vecxd::Zero(p_num_dofs);
    Hy = vecxd::Zero(p_num_dofs);
    Hz = vecxd::Zero(p_num_dofs);
    num_dofs = p_num_dofs;
}

void
field_gpu::zero()
Matteo Cicuttin's avatar
Matteo Cicuttin committed
{
    Ex.zero();
    Ey.zero();
    Ez.zero();
    Hx.zero();
    Hy.zero();
    Hz.zero();
}

void
field_gpu::resize(size_t p_num_dofs)
Matteo Cicuttin's avatar
Matteo Cicuttin committed
{
    Ex.resize(p_num_dofs);
    Ey.resize(p_num_dofs);
    Ez.resize(p_num_dofs);
    Hx.resize(p_num_dofs);
    Hy.resize(p_num_dofs);
    Hz.resize(p_num_dofs);
    num_dofs = p_num_dofs;
}

field_gpu::raw_ptrs
field_gpu::data(void)
Matteo Cicuttin's avatar
Matteo Cicuttin committed
{
    raw_ptrs ret;

    ret.num_dofs = num_dofs;
    ret.Ex = Ex.data();
    ret.Ey = Ey.data();
    ret.Ez = Ez.data();
    ret.Hx = Hx.data();
    ret.Hy = Hy.data();
    ret.Hz = Hz.data();

    return ret;
}

void
field_gpu::copyin(const field& emf)
Matteo Cicuttin's avatar
Matteo Cicuttin committed
{
    Ex.copyin(emf.Ex.data(), emf.Ex.size());
    Ey.copyin(emf.Ey.data(), emf.Ey.size());
    Ez.copyin(emf.Ez.data(), emf.Ez.size());
    Hx.copyin(emf.Hx.data(), emf.Hx.size());
    Hy.copyin(emf.Hy.data(), emf.Hy.size());
    Hz.copyin(emf.Hz.data(), emf.Hz.size());
}

void
field_gpu::copyout(field& emf)
Matteo Cicuttin's avatar
Matteo Cicuttin committed
{
    if (num_dofs != emf.num_dofs)
        emf.resize(num_dofs);

    Ex.copyout(emf.Ex.data());
    Ey.copyout(emf.Ey.data());
    Ez.copyout(emf.Ez.data());
    Hx.copyout(emf.Hx.data());
    Hy.copyout(emf.Hy.data());
    Hz.copyout(emf.Hz.data());
}

} // namespace maxwell