InKS, a programming model to decouple performance from semantics in simulation codes