Compute SDC integral fintSDC = \int_{t_n}^{t_m} fSDC dt
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pf_magpicard_t), | intent(inout) | :: | this | |||
class(pf_level_t), | intent(in) | :: | lev | |||
class(pf_encap_t), | intent(in) | :: | qSDC(:) | |||
class(pf_encap_t), | intent(in) | :: | fSDC(:,:) | |||
real(kind=pfdp), | intent(in) | :: | dt | |||
class(pf_encap_t), | intent(inout) | :: | fintSDC(:) | |||
integer, | intent(in), | optional | :: | flags |
subroutine magpicard_integrate(this, lev, qSDC, fSDC, dt, fintSDC, flags)
class(pf_magpicard_t), intent(inout) :: this
class(pf_level_t), intent(in ) :: lev
class(pf_encap_t), intent(in ) :: qSDC(:), fSDC(:, :)
real(pfdp), intent(in ) :: dt
class(pf_encap_t), intent(inout) :: fintSDC(:)
integer, optional, intent(in ) :: flags
integer :: j, m
do m = 1, lev%nnodes-1
call fintSDC(m)%setval(0.0_pfdp)
do j = 1, lev%nnodes
call fintSDC(m)%axpy(dt*lev%sdcmats%qmat(m,j), fSDC(j,1))
end do
end do
end subroutine magpicard_integrate