Skip to content

Incompatibility between Y and Z reflective field BC #829

@mccoys

Description

@mccoys

Description

In 3Dcartesian using both Y and Z with reflective EM boundary conditions makes the corners in the z=0 plane unstable and eventually creates infinite values. This is true both on CPU/GPU, with or without particles. The problem is fixed if either Y or Z are switched to periodic.

Steps to reproduce the problem

Namelist that shows the bug

from numpy import pi, sqrt, sin, cos, exp, s_, array

# normalisations in space & time
l0 = 2.*pi
t0 = 2.*pi
um = l0 / 0.8
fs = t0 * 3e8 / 0.8e-6 * 1e-15

npatch = [48,1,1]

# box size & sim.time
L = [40.*um, 4.*um, 4.*um]
Tsim = 100.*fs
d   = l0 / 64.
ncell = [4*np*( int( l / d ) // (4*np) ) for l,np in zip(L,npatch)]

Main(
    geometry = '3Dcartesian',
    patch_arrangement = "linearized_XYZ",
    interpolation_order = 2,
    timestep_over_CFL = 0.6,
    simulation_time = Tsim,
    grid_length = L,
    number_of_cells = ncell,
    number_of_patches = npatch,
    EM_boundary_conditions = [['silver-muller'],['reflective'],['reflective']],
    print_every = 20,
    solve_poisson = False,
    reference_angular_frequency_SI = 2 * pi * 3e8 / 0.8e-6,
)

LaserGaussian3D(
    box_side        = "xmin",
    a0              = 10.,
    omega           = 1.,
    focus           = [l/2 for l in L],
    waist           = 10000000.,
    polarization_phi = 0.,
    ellipticity     = 0.,
    time_envelope   = tsin2plateau(start=0., fwhm=25*fs, plateau=0) #, slope2=100.*t0
)

DiagFields(
    every = 100,
    time_average = 2,
    fields = [],
    subgrid = s_[::4, ::4, ::4]
)

Parameters

  • Smilei version : 5.1-366-g35cfab5-develop
  • Computing resources
    • tornado skylake (384 cores) / adastra mi250 (48 GPUs)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions