  Development of models and dedicated numerical methods for dynamics in
fractured rocks is an active research field, with research moving towards
increasingly advanced process couplings and complex fracture networks. The
inclusion of coupled processes in simulation models is challenged by the high
aspect ratio of the fractures, the complex geometry of fracture networks and
the crucial impact of processes that completely change characteristics on the
fracture-rock interface. This paper provides a general discussion of design
principles for introducing fractures in simulators, and defines a framework for
integrated modeling, discretization and computer implementation. The framework
is implemented in the simulation software PorePy, which can serve as a flexible
prototyping tool or multiphysics problems in fractured rocks. Based on a
representation of the fractures and their intersections as lower-dimensional
objects, we discuss data structures for mixed-dimensional meshes, formulation
of multiphysics problems and discretizations that utilize existing software. We
further present the implementation of these concepts in the PorePy open-source
software tool, which is aimed at coupled simulation of flow and transport in
three-dimensional fractured reservoirs as well as deformation of fractures and
the reservoir in general. We present validation by benchmarks for flow,
poroelasticity and fracture deformation in fractured porous media. The
flexibility of the framework is then illustrated by simulations of fully
coupled flow and transport and of injection driven deformation of fractures.
All results reported herein can be reproduced by openly available simulation
scripts.
