Allocates and resets temporary solver vectors.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_t), | intent(in) | :: | mesh |
subroutine ensure_projection_workspace(mesh) type(mesh_t), intent(in) :: mesh if (projection_work%initialized) then if (projection_work%ncells == mesh%ncells .and. & projection_work%nfaces == mesh%nfaces) return call finalize_flow_projection_workspace() end if projection_work%ncells = mesh%ncells projection_work%nfaces = mesh%nfaces allocate(projection_work%local_vec(3, mesh%ncells)) allocate(projection_work%local_vec_star(3, mesh%ncells)) allocate(projection_work%local_scalar(mesh%ncells)) allocate(projection_work%rhs_poisson(mesh%ncells)) allocate(projection_work%local_face_flux(mesh%nfaces)) allocate(projection_work%predicted_face_flux(mesh%nfaces)) allocate(projection_work%r(mesh%ncells)) allocate(projection_work%z(mesh%ncells)) allocate(projection_work%pvec(mesh%ncells)) allocate(projection_work%ap(mesh%ncells)) allocate(projection_work%local_ap(mesh%ncells)) projection_work%local_vec = zero projection_work%local_vec_star = zero projection_work%local_scalar = zero projection_work%rhs_poisson = zero projection_work%local_face_flux = zero projection_work%predicted_face_flux = zero projection_work%r = zero projection_work%z = zero projection_work%pvec = zero projection_work%ap = zero projection_work%local_ap = zero projection_work%initialized = .true. end subroutine ensure_projection_workspace