Designing languages for parallel portability of physical simulations, using relational algebraic abstractions