With regards to the SEMI command, what is the safety factor SFAC used for? What is it a factor on?
SFAC is used to calculate the time increment. In semi-implicit, the program calculates a time increment that is stable and to be on the safer side, multiply that time increment with this safety factor to get the time increment the program is going to use.
For example, if the stable time increment program calculates is tstable = 1sec and SFAC is 0.9 (default), then the program uses a time increment of timinc = 0.9*tstable=0.9.
If the SFAC is 0.1, then the time increment used will be 0.1*tstable = 0.1.
If the solution seems to be unstable, using a smaller factor of safety will help.