Пример #1
0
 def cv_flux_boundary(btag):
     boundary_discr = discr.discr_from_dd(btag)
     bnd_nodes = thaw(actx, boundary_discr.nodes())
     cv_bnd = initializer(x_vec=bnd_nodes, eos=eos)
     bnd_nhat = thaw(actx, discr.normal(btag))
     from grudge.trace_pair import TracePair
     bnd_tpair = TracePair(btag, interior=cv_bnd, exterior=cv_bnd)
     flux_weak = gradient_flux_central(bnd_tpair, bnd_nhat)
     return discr.project(bnd_tpair.dd, "all_faces", flux_weak)
Пример #2
0
def central_flux_boundary(actx, discr, soln_func, btag):
    """Compute a central flux for boundary faces."""
    boundary_discr = discr.discr_from_dd(btag)
    bnd_nodes = thaw(actx, boundary_discr.nodes())
    soln_bnd = soln_func(x_vec=bnd_nodes)
    bnd_nhat = thaw(actx, discr.normal(btag))
    from grudge.trace_pair import TracePair
    bnd_tpair = TracePair(btag, interior=soln_bnd, exterior=soln_bnd)
    flux_weak = gradient_flux_central(bnd_tpair, bnd_nhat)
    return discr.project(bnd_tpair.dd, "all_faces", flux_weak)
Пример #3
0
def central_flux_interior(actx, discr, int_tpair):
    """Compute a central flux for interior faces."""
    normal = thaw(actx, discr.normal(int_tpair.dd))
    flux_weak = gradient_flux_central(int_tpair, normal)
    dd_all_faces = int_tpair.dd.with_dtag("all_faces")
    return discr.project(int_tpair.dd, dd_all_faces, flux_weak)
Пример #4
0
 def cv_flux_interior(int_tpair):
     normal = thaw(actx, discr.normal(int_tpair.dd))
     flux_weak = gradient_flux_central(int_tpair, normal)
     dd_all_faces = int_tpair.dd.with_dtag("all_faces")
     return discr.project(int_tpair.dd, dd_all_faces, flux_weak)
Пример #5
0
 def cv_flux_interior(int_tpair):
     normal = thaw(actx, discr.normal(int_tpair.dd))
     flux_weak = gradient_flux_central(int_tpair, normal)
     return discr.project(int_tpair.dd, "all_faces", flux_weak)