simulation techniques