+/** @ingroup SURF_models
+ * @brief Initializes the CPU model with the model Cas01
+ *
+ * By default, this model uses the lazy optimization mechanism that relies on partial invalidation in LMM and a heap
+ * for lazy action update.
+ * You can change this behavior by setting the cpu/optim configuration variable to a different value.
+ *
+ * You shouldn't have to call it by yourself.
+ */
+XBT_PUBLIC void surf_cpu_model_init_Cas01();
+
+/** @ingroup SURF_models
+ * @brief Same as network model 'LagrangeVelho', only with different correction factors.
+ *
+ * This model is proposed by Pierre-Nicolas Clauss and Martin Quinson and Stéphane Génaud based on the model 'LV08' and
+ * different correction factors depending on the communication size (< 1KiB, < 64KiB, >= 64KiB).
+ * See comments in the code for more information.
+ *
+ * @see surf_host_model_init_SMPI()
+ */
+#if !HAVE_SMPI
+XBT_ATTRIB_NORETURN
+#endif
+XBT_PUBLIC void surf_network_model_init_SMPI();
+
+/** @ingroup SURF_models
+ * @brief Same as network model 'LagrangeVelho', only with different correction factors.
+ *
+ * This model implements a variant of the contention model on Infiniband networks based on
+ * the works of Jérôme Vienne : http://mescal.imag.fr/membres/jean-marc.vincent/index.html/PhD/Vienne.pdf
+ *
+ * @see surf_host_model_init_IB()
+ */
+#if !HAVE_SMPI
+XBT_ATTRIB_NORETURN
+#endif
+XBT_PUBLIC void surf_network_model_init_IB();
+
+/** @ingroup SURF_models
+ * @brief Initializes the platform with the network model 'LegrandVelho'
+ *
+ * This model is proposed by Arnaud Legrand and Pedro Velho based on the results obtained with the GTNets simulator for
+ * onelink and dogbone sharing scenarios. See comments in the code for more information.
+ *
+ * @see surf_host_model_init_LegrandVelho()
+ */
+XBT_PUBLIC void surf_network_model_init_LegrandVelho();
+
+/** @ingroup SURF_models
+ * @brief Initializes the platform with the network model 'Constant'
+ *
+ * In this model, the communication time between two network cards is constant, hence no need for a routing table.
+ * This is particularly useful when simulating huge distributed algorithms where scalability is really an issue. This
+ * function is called in conjunction with surf_host_model_init_compound.
+ *
+ * @see surf_host_model_init_compound()