diff --git a/tests/block_bytecode/ireland.mod b/tests/block_bytecode/ireland.mod
index 08000ca584199e1ef17bbd3b3f84a6d6ff79d8fd..885e92bd1f4b870c9ca0487886932dbfb2727e9c 100644
--- a/tests/block_bytecode/ireland.mod
+++ b/tests/block_bytecode/ireland.mod
@@ -72,6 +72,8 @@ end;
 
 model_info;
 
-simul(periods=2000, stack_solve_algo = 0,maxit=10);
+perfect_foresight_setup(periods=2000);
+perfect_foresight_solver(stack_solve_algo = 0, maxit=10);
+
 rplot y;
 rplot k;
diff --git a/tests/deterministic_simulations/homotopy.mod b/tests/deterministic_simulations/homotopy.mod
index f6b3081dd641e2801a90fd728558fc0d71b3b65b..64ccde0d8480a8bb9f5bca6d6c261588bcdd8981 100644
--- a/tests/deterministic_simulations/homotopy.mod
+++ b/tests/deterministic_simulations/homotopy.mod
@@ -44,7 +44,8 @@ end;
 
 steady;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/homotopy_histval.mod b/tests/deterministic_simulations/homotopy_histval.mod
index 394081c56b3754ea8a9d3f0fb5c8760ab769912d..8a1bba3013930b3f9d2ad88c040f37f1f74226d7 100644
--- a/tests/deterministic_simulations/homotopy_histval.mod
+++ b/tests/deterministic_simulations/homotopy_histval.mod
@@ -51,7 +51,8 @@ end;
 
 // steady;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/initialization.mod b/tests/deterministic_simulations/initialization.mod
index 057618526f0efb2e4ce85d3e2cb957df0a594cab..bc5288e6ed433e37d357be06260d3dbe5f007029 100644
--- a/tests/deterministic_simulations/initialization.mod
+++ b/tests/deterministic_simulations/initialization.mod
@@ -17,11 +17,12 @@ end;
 check;
 
 %% DETERMINISTIC SIMULATION
-simul(periods = 40, stack_solve_algo=0, maxit=100);
+perfect_foresight_setup(periods = 40);
+perfect_foresight_solver(stack_solve_algo=0, maxit=100);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
 dsample 40;
-rplot x;
\ No newline at end of file
+rplot x;
diff --git a/tests/deterministic_simulations/linear_approximation/sw.mod b/tests/deterministic_simulations/linear_approximation/sw.mod
index 59510c2bc31bb5caed92db32e09ccb6b6d482a1e..949d427267a11f585f9621878ffaa10869e4d1ff 100644
--- a/tests/deterministic_simulations/linear_approximation/sw.mod
+++ b/tests/deterministic_simulations/linear_approximation/sw.mod
@@ -115,13 +115,16 @@ steady;
 
 check;
 
-simul(periods=300);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver;
+
 endo_simul_0 = oo_.endo_simul;
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
-simul(linear_approximation,periods=300, stack_solve_algo=7);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver(linear_approximation, stack_solve_algo=7);
 endo_simul_1 = oo_.endo_simul;
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/multiple_lead_lags/AR2.mod b/tests/deterministic_simulations/multiple_lead_lags/AR2.mod
index df4839fecfc701e3ec8a6b289da7190c2bd994a9..4280f3f385e4ed4a80a06a84f88bc55cb3dce8fc 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/AR2.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/AR2.mod
@@ -27,7 +27,8 @@ end;
 check;
 
 // Deterministic simulation of the model for 200 periods
-simul(periods=100, tolf=1e-12);
+perfect_foresight_setup(periods=100);
+perfect_foresight_solver(tolf=1e-12);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/multiple_lead_lags/AR2_forward.mod b/tests/deterministic_simulations/multiple_lead_lags/AR2_forward.mod
index d17f1a017bfbbbad82da330f8f6cfc4dc84a2de8..3a9f01d73ae618bd9930bd2a8f685de6c4b82945 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/AR2_forward.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/AR2_forward.mod
@@ -29,7 +29,8 @@ end;
 check;
 
 // Deterministic simulation of the model for 200 periods
-simul(periods=100, tolf=1e-12);
+perfect_foresight_setup(periods=100);
+perfect_foresight_solver(tolf=1e-12);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/multiple_lead_lags/ramst_augmented_histval.mod b/tests/deterministic_simulations/multiple_lead_lags/ramst_augmented_histval.mod
index fb362e0dca89a676d26f3f012bd03d8b852ed325..fe6e9ae2d4fcadb1be1301ed252301963dfed6c3 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/ramst_augmented_histval.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/ramst_augmented_histval.mod
@@ -52,7 +52,8 @@ values 1.2;
 end;
 
 // Deterministic simulation of the model for 200 periods
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/multiple_lead_lags/sim_base.mod b/tests/deterministic_simulations/multiple_lead_lags/sim_base.mod
index c54c3b4727ae5a4ad54f2347946226ace1b51d86..0147d8d10bef434d44fe34385084c87b30aaced6 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/sim_base.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/sim_base.mod
@@ -27,8 +27,9 @@ periods 2;
 values 0.9;
 end;
 
-simul(periods=200,maxit=100);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver(maxit=100);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
-end
\ No newline at end of file
+end
diff --git a/tests/deterministic_simulations/multiple_lead_lags/sim_endo_lead_lag.mod b/tests/deterministic_simulations/multiple_lead_lags/sim_endo_lead_lag.mod
index 2a86e0db6a48214e5dc9733ecbc59936654ea93f..fdb1b1bf06ab52778b6d8199d6c5e948d416798c 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/sim_endo_lead_lag.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/sim_endo_lead_lag.mod
@@ -38,7 +38,8 @@ periods 2;
 values 0.9;
 end;
 
-simul(periods=200,maxit=100);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver(maxit=100);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/multiple_lead_lags/sim_endo_lead_lag_aux_vars.mod b/tests/deterministic_simulations/multiple_lead_lags/sim_endo_lead_lag_aux_vars.mod
index d291d91815ba8273f53a02c92f1921ded2f63eb1..395d9a9d62e74b97df095325e93ae3d6d3ede2b3 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/sim_endo_lead_lag_aux_vars.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/sim_endo_lead_lag_aux_vars.mod
@@ -41,7 +41,8 @@ periods 2;
 values 0.9;
 end;
 
-simul(periods=200,maxit=100);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver(maxit=100);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
@@ -53,4 +54,4 @@ if max(abs(base_results.oo_.endo_simul(strmatch('c',base_results.M_.endo_names,'
     max(abs(base_results.oo_.endo_simul(strmatch('k',base_results.M_.endo_names,'exact'),1+base_results.M_.maximum_endo_lag:end-base_results.M_.maximum_endo_lead) -...
         oo_.endo_simul(strmatch('k',M_.endo_names,'exact'),1+M_.maximum_endo_lag:end-M_.maximum_endo_lead)))>1e-8
     error('Autonomous system part is wrong')
-end
\ No newline at end of file
+end
diff --git a/tests/deterministic_simulations/multiple_lead_lags/sim_exo_lead_lag.mod b/tests/deterministic_simulations/multiple_lead_lags/sim_exo_lead_lag.mod
index d84479a45e1c9fd2bed6f36026845c9a738e4ca6..ea3716c1af752fe024a4162d892022104bf5f828 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/sim_exo_lead_lag.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/sim_exo_lead_lag.mod
@@ -36,7 +36,8 @@ periods 2;
 values 0.9;
 end;
 
-simul(periods=200,maxit=100);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver(maxit=100);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/multiple_lead_lags/sim_exo_lead_lag_aux_vars.mod b/tests/deterministic_simulations/multiple_lead_lags/sim_exo_lead_lag_aux_vars.mod
index 113812b5d957116c44a3db759cf725a63332e0f5..a2ae0e347c09b824686dcbd7073fa639fd49f4ae 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/sim_exo_lead_lag_aux_vars.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/sim_exo_lead_lag_aux_vars.mod
@@ -41,7 +41,8 @@ periods 2;
 values 0.9;
 end;
 
-simul(periods=200,maxit=100);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver(maxit=100);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/multiple_lead_lags/sim_lead_lag.mod b/tests/deterministic_simulations/multiple_lead_lags/sim_lead_lag.mod
index 8187405455483ecd3244221deee72bb4d5b45c8c..927ba5f2d82b3b6102201c46417079c78513f458 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/sim_lead_lag.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/sim_lead_lag.mod
@@ -40,7 +40,8 @@ periods 2;
 values 0.9;
 end;
 
-simul(periods=200,maxit=100);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver(maxit=100);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/multiple_lead_lags/sim_lead_lag_aux_vars.mod b/tests/deterministic_simulations/multiple_lead_lags/sim_lead_lag_aux_vars.mod
index b35cacd458cc4d0261d9d7add01edbe8fea0a720..2a642e9d3fa1c2b95d1474ab4332b4aeb4c22e8b 100644
--- a/tests/deterministic_simulations/multiple_lead_lags/sim_lead_lag_aux_vars.mod
+++ b/tests/deterministic_simulations/multiple_lead_lags/sim_lead_lag_aux_vars.mod
@@ -51,7 +51,8 @@ periods 2;
 values 0.9;
 end;
 
-simul(periods=200,maxit=100);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver(maxit=100);
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/purely_backward/ar1.mod b/tests/deterministic_simulations/purely_backward/ar1.mod
index 1eb5dc5a4469d4e65d3560714ca17af377f4a3d1..024d3748d67cf7dd21cf9ac7c566dc3d18090fbe 100644
--- a/tests/deterministic_simulations/purely_backward/ar1.mod
+++ b/tests/deterministic_simulations/purely_backward/ar1.mod
@@ -25,7 +25,8 @@ shocks;
     values 1;
 end;
 
-simul(periods=10);
+perfect_foresight_setup(periods=10);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/purely_forward/ar1.mod b/tests/deterministic_simulations/purely_forward/ar1.mod
index 4c7f8ee045861219c94d95cd9a5e726a7dffe554..d5765ac15bf3bd040542c5f41b0f03fb6ce9a629 100644
--- a/tests/deterministic_simulations/purely_forward/ar1.mod
+++ b/tests/deterministic_simulations/purely_forward/ar1.mod
@@ -22,7 +22,8 @@ shocks;
     values 1 -1;
 end;
 
-simul(periods=5);
+perfect_foresight_setup(periods=5);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/purely_forward/nk.mod b/tests/deterministic_simulations/purely_forward/nk.mod
index 15295ff01c100eeb009059065593142564269d2c..8160e809282e5a59ccda03d44a5663dcb630f8e8 100644
--- a/tests/deterministic_simulations/purely_forward/nk.mod
+++ b/tests/deterministic_simulations/purely_forward/nk.mod
@@ -35,7 +35,8 @@ periods 1 2;
 values  .3  -0.1;
 end;
 
-simul(periods=5);
+perfect_foresight_setup(periods=5);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/purely_static/toto.mod b/tests/deterministic_simulations/purely_static/toto.mod
index 21f76c7028e775a207124884841fc2ffcaededf2..ba19563c1efdea40208843bf12b143a01247d384 100644
--- a/tests/deterministic_simulations/purely_static/toto.mod
+++ b/tests/deterministic_simulations/purely_static/toto.mod
@@ -22,4 +22,5 @@ shocks;
     values 1 .5 .25 .125;
 end;
 
-simul(periods=4);
+perfect_foresight_setup(periods=4);
+perfect_foresight_solver;
diff --git a/tests/deterministic_simulations/rbc_det1.mod b/tests/deterministic_simulations/rbc_det1.mod
index 0458074b21f03b72585ed5bd8d145145242c16c5..9b3635eb485ae5b492da6887df28d8a303b3ed68 100644
--- a/tests/deterministic_simulations/rbc_det1.mod
+++ b/tests/deterministic_simulations/rbc_det1.mod
@@ -69,11 +69,12 @@ histval;
 Capital(0) = CapitalSS/2;
 end;
 
-simul(periods=20);
+perfect_foresight_setup(periods=20);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
 rplot Consumption;
-rplot Capital;
\ No newline at end of file
+rplot Capital;
diff --git a/tests/deterministic_simulations/rbc_det2.mod b/tests/deterministic_simulations/rbc_det2.mod
index 7f38a3a34a00a374a0d37bd708a14e11c0338c28..5da12fb89bf7bf00c66941e28a273b535799cc30 100644
--- a/tests/deterministic_simulations/rbc_det2.mod
+++ b/tests/deterministic_simulations/rbc_det2.mod
@@ -74,11 +74,12 @@ periods 1;
 values -0.1;
 end;
 
-simul(periods=300);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
 rplot Consumption;
-rplot Capital;
\ No newline at end of file
+rplot Capital;
diff --git a/tests/deterministic_simulations/rbc_det3.mod b/tests/deterministic_simulations/rbc_det3.mod
index f805b607d8e540df3763af95da7efb8d91908294..77844d435c5a93a783a0808f9fb16c767c78beac 100644
--- a/tests/deterministic_simulations/rbc_det3.mod
+++ b/tests/deterministic_simulations/rbc_det3.mod
@@ -69,11 +69,12 @@ periods 4, 5, 6, 7, 8;
 values 0.04, 0.05, 0.06, 0.07, 0.08;
 end;
 
-simul(periods=300);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
 rplot Consumption;
-rplot Capital;
\ No newline at end of file
+rplot Capital;
diff --git a/tests/deterministic_simulations/rbc_det4.mod b/tests/deterministic_simulations/rbc_det4.mod
index 82542bb31622837f895179bcbe11609e7777d770..3855b2f0dc6a5346dbceac64a8b7f31e25cf02d5 100644
--- a/tests/deterministic_simulations/rbc_det4.mod
+++ b/tests/deterministic_simulations/rbc_det4.mod
@@ -72,11 +72,12 @@ end;
 
 steady;
 
-simul(periods=300);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
 rplot Consumption;
-rplot Capital;
\ No newline at end of file
+rplot Capital;
diff --git a/tests/deterministic_simulations/rbc_det5.mod b/tests/deterministic_simulations/rbc_det5.mod
index ffeadf10a4495bdf66a654074ac15c80ecf0ace2..a6acd593af707f8658c99a0e9a2c5fea0295220a 100644
--- a/tests/deterministic_simulations/rbc_det5.mod
+++ b/tests/deterministic_simulations/rbc_det5.mod
@@ -78,11 +78,12 @@ periods 1:5;
 values 0;
 end;
 
-simul(periods=300);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
 rplot Consumption;
-rplot Capital;
\ No newline at end of file
+rplot Capital;
diff --git a/tests/deterministic_simulations/rbc_det6.mod b/tests/deterministic_simulations/rbc_det6.mod
index ad1ff2870dd666eaf76ef901eb0ac74ac652847c..eec3832dafe1e2d3d125b68aff69d56ba2805aea 100644
--- a/tests/deterministic_simulations/rbc_det6.mod
+++ b/tests/deterministic_simulations/rbc_det6.mod
@@ -69,14 +69,16 @@ histval;
 Capital(0) = CapitalSS/2;
 end;
 
-simul(periods=500);
+perfect_foresight_setup(periods=500);
+perfect_foresight_solver;
 fff = oo_.endo_simul;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
-simul(periods=500, endogenous_terminal_period);
+perfect_foresight_setup(periods=500);
+perfect_foresight_solver(endogenous_terminal_period);
 ggg = oo_.endo_simul;
 
 if ~oo_.deterministic_simulation.status
diff --git a/tests/deterministic_simulations/rbc_det_exo_lag_2a.mod b/tests/deterministic_simulations/rbc_det_exo_lag_2a.mod
index 087f84cdb8516d341303d209d7226a6df1773856..7c87f76f756d86ca6b04bd9e0e405fbae4f7d132 100644
--- a/tests/deterministic_simulations/rbc_det_exo_lag_2a.mod
+++ b/tests/deterministic_simulations/rbc_det_exo_lag_2a.mod
@@ -72,11 +72,12 @@ periods 3;
 values -0.1;
 end;
 
-simul(periods=300);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
 end
 
 rplot Consumption;
-rplot Capital;
\ No newline at end of file
+rplot Capital;
diff --git a/tests/deterministic_simulations/rbc_det_exo_lag_2b.mod b/tests/deterministic_simulations/rbc_det_exo_lag_2b.mod
index 0d896b288db587dffb547bb685b846e654e2b2d9..1c45625564b7669882deb01f1111854cc64e0d85 100644
--- a/tests/deterministic_simulations/rbc_det_exo_lag_2b.mod
+++ b/tests/deterministic_simulations/rbc_det_exo_lag_2b.mod
@@ -73,7 +73,8 @@ periods 1;
 values -0.1;
 end;
 
-simul(periods=300);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/deterministic_simulations/rbc_det_exo_lag_2c.mod b/tests/deterministic_simulations/rbc_det_exo_lag_2c.mod
index 39058dda8a89fc8131a0c70cebbc90162020ada9..4295936872890b549e512300a49a7920035b7c86 100644
--- a/tests/deterministic_simulations/rbc_det_exo_lag_2c.mod
+++ b/tests/deterministic_simulations/rbc_det_exo_lag_2c.mod
@@ -73,7 +73,8 @@ periods 1;
 values -0.1;
 end;
 
-simul(periods=300);
+perfect_foresight_setup(periods=300);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/differentiate_forward_vars/RBC_differentiate_forward.mod b/tests/differentiate_forward_vars/RBC_differentiate_forward.mod
index f95c85404dcf38b29a99341fe3dd67f5f5e43f21..d396e38c862967dcedfba32265f36812e22daf1b 100644
--- a/tests/differentiate_forward_vars/RBC_differentiate_forward.mod
+++ b/tests/differentiate_forward_vars/RBC_differentiate_forward.mod
@@ -89,4 +89,5 @@ end;
 steady;
 check;
 
-simul(periods=500);
+perfect_foresight_setup(periods=500);
+perfect_foresight_solver;
diff --git a/tests/ep/rbcii.mod b/tests/ep/rbcii.mod
index 42ed2ea676f7804bfcb9c9bb1a368f0f6302223c..3f3fa32a5ad1d46c75281b34ffea87020efd8bb3 100644
--- a/tests/ep/rbcii.mod
+++ b/tests/ep/rbcii.mod
@@ -70,7 +70,8 @@ end;
 
     options_.simul.maxit = 100;
 
-    simul(periods=4000);
+    perfect_foresight_setup(periods=4000);
+    perfect_foresight_solver;
 
     n = 100;
 
diff --git a/tests/histval_det.mod b/tests/histval_det.mod
index 12c5f2cc75b19acd0cf50f5130bb75deccbb959a..a1379c1be78677eb64179c0cfd50618d66b0ab3b 100644
--- a/tests/histval_det.mod
+++ b/tests/histval_det.mod
@@ -35,4 +35,5 @@ x(0) = 0.9;
 z(-1) = 0.1;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
diff --git a/tests/histval_initval_file/sim_exo_lead_lag.mod b/tests/histval_initval_file/sim_exo_lead_lag.mod
index 5a06c1c5cb9b40f8c5419a0e99ccafeeac345890..ae6c224ec52176849f71d19c1aeb77d53e9a081d 100644
--- a/tests/histval_initval_file/sim_exo_lead_lag.mod
+++ b/tests/histval_initval_file/sim_exo_lead_lag.mod
@@ -34,7 +34,8 @@ periods 2;
 values 0.9;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 if ~oo_.deterministic_simulation.status
    error('Perfect foresight simulation failed')
diff --git a/tests/lmmcp/sw_lmmcp.mod b/tests/lmmcp/sw_lmmcp.mod
index 1b57f5a5db2ae3b6d21a5ff2744d8a8d1f3b8445..59758a55c78cdb238207ae5f0bec39f3e4378881 100644
--- a/tests/lmmcp/sw_lmmcp.mod
+++ b/tests/lmmcp/sw_lmmcp.mod
@@ -68,4 +68,5 @@ end;
 
 @#include "sw-common-footer.inc"
 
-simul(periods=1000, lmmcp);
\ No newline at end of file
+perfect_foresight_setup(periods=1000);
+perfect_foresight_solver(lmmcp);
diff --git a/tests/lmmcp/sw_newton.mod b/tests/lmmcp/sw_newton.mod
index bab473d026ec197eda3ed67223c2a51d379b78ba..6162c796771c8744e136edd7141291eba068e05e 100644
--- a/tests/lmmcp/sw_newton.mod
+++ b/tests/lmmcp/sw_newton.mod
@@ -67,7 +67,8 @@ end;
 
 @#include "sw-common-footer.inc"
 
-simul(periods=1000);
+perfect_foresight_setup(periods=1000);
+perfect_foresight_solver;
 
 newton_solution_is_wrong = abs(evaluate_max_dynamic_residual(str2func('sw_newton.dynamic'), oo_.endo_simul, oo_.exo_simul, M_.params, oo_.steady_state, 1000, size(oo_.endo_simul, 1), 1, M_.lead_lag_incidence))>options_.dynatol.f;
 
@@ -87,4 +88,4 @@ end
 
 if lmmcp_solution_is_wrong
    error('Failed to solve SW with ZLB (using LMMCP algorithm on stacked model)!')
-end
\ No newline at end of file
+end
diff --git a/tests/predetermined_variables.mod b/tests/predetermined_variables.mod
index 5f6a495436aeb4156797fd34e4082c9325668a89..48212a9fb7187e261b094678a51d3e0218125474 100644
--- a/tests/predetermined_variables.mod
+++ b/tests/predetermined_variables.mod
@@ -35,7 +35,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 rplot c;
 rplot k;
diff --git a/tests/ramst2.mod b/tests/ramst2.mod
index a9f92ccb2eae80b3f0ab81a87b584a6c2c2d507c..e74d3aef12d9e5a3532907104a78b52489879c1f 100644
--- a/tests/ramst2.mod
+++ b/tests/ramst2.mod
@@ -34,7 +34,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 dynasave('myfile') c x k;
 dynatype('myfile1.txt') c x k;
@@ -42,4 +43,4 @@ dynatype('myfile1.txt') c x k;
 rplot c;
 rplot k;
 rplot dc;
-rplot s;
\ No newline at end of file
+rplot s;
diff --git a/tests/ramst_a.mod b/tests/ramst_a.mod
index 29a8cdf32e5465f3737bc8993a360a1709bcac8c..ca1fcf4dee29f4efa1f03889ca42c7c84fa10532 100644
--- a/tests/ramst_a.mod
+++ b/tests/ramst_a.mod
@@ -31,7 +31,8 @@ periods 1 2 3 4;
 values 1.1 1.2 1.3 1.4;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 rplot c;
 rplot k;
diff --git a/tests/ramst_normcdf_and_friends.inc b/tests/ramst_normcdf_and_friends.inc
index 2882fed6f4594b0ac73cfe3263e8d8df612f9459..fa604c56d28bbe55e3091feaf49e35ecffbc1e20 100644
--- a/tests/ramst_normcdf_and_friends.inc
+++ b/tests/ramst_normcdf_and_friends.inc
@@ -67,7 +67,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=20);
+perfect_foresight_setup(periods=20);
+perfect_foresight_solver;
 
 if(abs(oo_.steady_state(5) - erf(1)) > 1e-10)
    error('Test failed in static @{mode_name} for erf')
diff --git a/tests/ramst_static_tag.mod b/tests/ramst_static_tag.mod
index 6b69f8a2e1ec9451e54df5ba8d7c556cdb4b035e..33c9570868055a115df10b0dc0ee9178ebc9f23e 100644
--- a/tests/ramst_static_tag.mod
+++ b/tests/ramst_static_tag.mod
@@ -31,7 +31,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 rplot c;
 rplot k;
diff --git a/tests/ramst_static_tag_block.mod b/tests/ramst_static_tag_block.mod
index c9736021fad4a83825a37804a2e6b61ee7cbfa58..01c8faa6172f6e23631cb0242f099fda6ac4c610 100644
--- a/tests/ramst_static_tag_block.mod
+++ b/tests/ramst_static_tag_block.mod
@@ -33,7 +33,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 rplot c;
 rplot k;
diff --git a/tests/ramst_vec.mod b/tests/ramst_vec.mod
index 6085a1193d54202b81e33d65225abdfb4579e06f..b486ef7d401deeaff3594dd94bfd632f92c96e28 100644
--- a/tests/ramst_vec.mod
+++ b/tests/ramst_vec.mod
@@ -32,7 +32,8 @@ periods 1:2;
 values (a);
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 rplot c;
 rplot k;
diff --git a/tests/ramst_xfail.mod b/tests/ramst_xfail.mod
index dd428b4ff74bbd42d340718f1a08eb98629e8a1c..c10ec3d54a82ec406c2be7fd262c718419ac6454 100644
--- a/tests/ramst_xfail.mod
+++ b/tests/ramst_xfail.mod
@@ -28,7 +28,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 rplot c;
 rplot k;
diff --git a/tests/simul/Irreversible_investment.mod b/tests/simul/Irreversible_investment.mod
index 02719c4271edf6567a0867f3dcb3c4f28a113cb2..541179a087a27e7f63cbbd36681a1715dc5ad77d 100644
--- a/tests/simul/Irreversible_investment.mod
+++ b/tests/simul/Irreversible_investment.mod
@@ -104,9 +104,9 @@ var epsilonA1; periods 1; values 2;
 
 end;
 
-options_.simul.robust_lin_solve=1;
-simul( periods = 400 );
+perfect_foresight_setup(periods=400);
+perfect_foresight_solver(robust_lin_solve);
 
 if ~oo_.deterministic_simulation.status
     error('Model did not solve')
-end
\ No newline at end of file
+end
diff --git a/tests/simul/Solow_no_varexo.mod b/tests/simul/Solow_no_varexo.mod
index 16a4ec0bd70b745a81d712fcaa77bd4d61553594..4d9da08f166f465aea6544693589a8c99ec014f4 100644
--- a/tests/simul/Solow_no_varexo.mod
+++ b/tests/simul/Solow_no_varexo.mod
@@ -61,5 +61,7 @@ end;
 resid;
 steady;
 
-simul(periods=200, solve_algo=4);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver(solve_algo=4);
+
 rplot k;
diff --git a/tests/simul/linear_state_space_arma.mod b/tests/simul/linear_state_space_arma.mod
index 8de3d47ceab63e51e11bd27dfc6603b9e4eca9ee..87ca7d69dab801376e9915e52392c37b27fcd5ab 100644
--- a/tests/simul/linear_state_space_arma.mod
+++ b/tests/simul/linear_state_space_arma.mod
@@ -40,4 +40,5 @@ x=0;
 z=0;
 end;
 steady;
-simul(periods=1000,stack_solve_algo=0);
+perfect_foresight_setup(periods=1000);
+perfect_foresight_solver(stack_solve_algo=0);
diff --git a/tests/simul/simul_ZLB_purely_forward.mod b/tests/simul/simul_ZLB_purely_forward.mod
index d09a32764717f30cbc8b76c9a4dc569166d0e447..9eaf8abb335524c5bf90bfb030694240ad86d42c 100644
--- a/tests/simul/simul_ZLB_purely_forward.mod
+++ b/tests/simul/simul_ZLB_purely_forward.mod
@@ -87,7 +87,8 @@ periods 1:10;
 values 1.05;
 end;
 
-simul(periods=40,maxit=1000);
+perfect_foresight_setup(periods=40);
+perfect_foresight_solver(maxit=1000);
 
 rplot gdp_hat;
 rplot R;
diff --git a/tests/simul/simul_ZLB_purely_forward_no_solution.mod b/tests/simul/simul_ZLB_purely_forward_no_solution.mod
index a2ff16ac4b84135bd77bc2fefde0fc88e54f9d50..4610886757e9e787c60f6f96d8e1d2f79986683a 100644
--- a/tests/simul/simul_ZLB_purely_forward_no_solution.mod
+++ b/tests/simul/simul_ZLB_purely_forward_no_solution.mod
@@ -87,7 +87,8 @@ periods 1:10;
 values 1.05;
 end;
 
-simul(periods=40,maxit=1000);
+perfect_foresight_setup(periods=40);
+perfect_foresight_solver(maxit=1000);
 
 if oo_.deterministic_simulation.status==1
     error('This model has no solution');
diff --git a/tests/steady_state_operator/block.mod b/tests/steady_state_operator/block.mod
index 9bf7a5c958fd69ebf57739083782a5291829f973..53f546c53050851fee6203097f3a294fd99a3fa4 100644
--- a/tests/steady_state_operator/block.mod
+++ b/tests/steady_state_operator/block.mod
@@ -33,7 +33,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=20);
+perfect_foresight_setup(periods=20);
+perfect_foresight_solver;
 
 if(abs(oo_.steady_state(2) - oo_.steady_state(3)) > 1e-10)
    error('Test failed in static M-file for steady_state')
diff --git a/tests/steady_state_operator/bytecode_test.mod b/tests/steady_state_operator/bytecode_test.mod
index fff93e990608c77f19189b056f46aeb7a4e28c97..c637b25d74dd771176ff334fae61768898f0bd66 100644
--- a/tests/steady_state_operator/bytecode_test.mod
+++ b/tests/steady_state_operator/bytecode_test.mod
@@ -33,7 +33,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=20, stack_solve_algo=5);
+perfect_foresight_setup(periods=20);
+perfect_foresight_solver(stack_solve_algo=5);
 
 if(abs(oo_.steady_state(2) - oo_.steady_state(3)) > 1e-10)
    error('Test failed in static M-file for steady_state')
diff --git a/tests/steady_state_operator/standard.mod b/tests/steady_state_operator/standard.mod
index 1ad68b671388465539f710892fe21b55c13763e1..6432439c6c395c351a54f806ac61f52882b103c1 100644
--- a/tests/steady_state_operator/standard.mod
+++ b/tests/steady_state_operator/standard.mod
@@ -33,7 +33,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=20);
+perfect_foresight_setup(periods=20);
+perfect_foresight_solver;
 
 if(abs(oo_.steady_state(2) - oo_.steady_state(3)) > 1e-10)
    error('Test failed in static M-file for steady_state')
diff --git a/tests/steady_state_operator/use_dll.mod b/tests/steady_state_operator/use_dll.mod
index d8de6cec29fc2c065ae073eed33e376fe9b853cd..d4d308bd429bbc1c02d5c89e03d0f5862b9bcc78 100644
--- a/tests/steady_state_operator/use_dll.mod
+++ b/tests/steady_state_operator/use_dll.mod
@@ -33,7 +33,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=20);
+perfect_foresight_setup(periods=20);
+perfect_foresight_solver;
 
 if(abs(oo_.steady_state(2) - oo_.steady_state(3)) > 1e-10)
    error('Test failed in static M-file for steady_state')
diff --git a/tests/t_periods_a.mod b/tests/t_periods_a.mod
index 1ab399c6b8a1ef0bc0bf31c20e1bce9c07624e42..26a064d9ef24580607a624d89d29b4a068fbe07b 100644
--- a/tests/t_periods_a.mod
+++ b/tests/t_periods_a.mod
@@ -30,7 +30,8 @@ periods 1;
 values 1.2;
 end;
 
-simul(periods=200);
+perfect_foresight_setup(periods=200);
+perfect_foresight_solver;
 
 rplot c;
 rplot k;