inducer / grudge

Grand Unified Discontinuous Galerkin Environment? A DG code in training.
12 stars 17 forks source link

Remove `DD_VOLUME_ALL` usage in metrics #325

Closed majosm closed 10 months ago

majosm commented 10 months ago

cc @anderson2981

anderson2981 commented 10 months ago

This fixes a bug for me, that I ran into trying to run the y3prediction driver in 1D. Testing the fix and appears to work correctly now.

  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/y3prediction/prediction.py", line 2010, in compute_smoothed_char_length
    smooth_href_fluid_rhs = diffusion_operator(
                            ^^^^^^^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/mirgecom/mirgecom/diffusion.py", line 619, in diffusion_operator
    grad_u = grad_operator(
             ^^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/mirgecom/mirgecom/diffusion.py", line 513, in grad_operator
    sum(
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/mirgecom/mirgecom/diffusion.py", line 514, in <genexpr>
    interior_flux(kappa_tpair, u_tpair)
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/mirgecom/mirgecom/diffusion.py", line 492, in interior_flux
    normal_quad = actx.thaw(dcoll.normal(dd_trace_quad))
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/discretization.py", line 807, in normal
    return self._setup_actx.freeze(normal(self._setup_actx, self, dd))
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/geometry/metrics.py", line 804, in normal
    return mv_normal(
           ^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/geometry/metrics.py", line 782, in mv_normal
    return actx.thaw(_normal())
                     ^^^^^^^^^
  File "/Users/someguy/software/Install/Conda/envs/mirgeDriver.Y3prediction/lib/python3.11/site-packages/pytools/__init__.py", line 933, in new_inner
    result = inner(*args)
             ^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/geometry/metrics.py", line 744, in _normal
    result = rel_mv_normal(
             ^^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/geometry/metrics.py", line 693, in rel_mv_normal
    pder = pseudoscalar(
           ^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/geometry/metrics.py", line 635, in pseudoscalar
    return parametrization_derivative(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/geometry/metrics.py", line 604, in parametrization_derivative
    _signed_face_ones(actx, dcoll, dd),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/geometry/metrics.py", line 564, in _signed_face_ones
    all_faces_conn = dcoll.connection_from_dds(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/someguy/software/Install/Conda/envs/mirgeDriver.Y3prediction/lib/python3.11/site-packages/pytools/__init__.py", line 777, in wrapper
    result = function(obj, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/someguy/work/CEESD/MirgeCom/Drivers/CEESD-Y3_prediction/emirge/grudge/grudge/discretization.py", line 553, in connection_from_dds
    raise ValueError("cannot get a connection from one volume "
ValueError: cannot get a connection from one volume ('<class 'grudge.dof_desc.VTAG_ALL'>') to the boundary of another volume ('fluid')
Abort(1) on node 0 (rank 0 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0