Summary:
I've been working on improving the 40m FINESSE model I set up sometime last year (where the goal was to model various RC folding mirror scenarios). Specifically, I wanted to get the locking feature of FINESSE working, and also simulate the DRMI (no arms) configuration, which is what I have been working on locking the real IFO to. This elog is a summary of what I have from the last few days of working on this.
Model details:
 No IMC included for now.
 Core optics R and T from the 40m wiki page.
 Cavity lengths are the "ideal" ones  see the attached ipynb for the values used.
 RF modulation depths from here. But for now, the relative phase between f1 and f2 at the EOM is set to 0.
 I've not included flipped folding mirrors  instead, I put a loss of 0.5% on PR3 and SR3 in the model to account for the AR surface of these optics being inside the RCs.
 I've made the AR surfaces of all optics FINESSE "beamsplitters"  there was some discussion on the FINESSE mattermost channel about how not doing this can lead to slightly inaccurate results, so I've tried to be more careful in this respect.
 I'm using "maxtem 1" in my FINESSE file, which means TEM_mn modes up to (m+n=1) are taken into account  setting this to 0 makes it a plane wave model. This parameter can significantly increase the computational time.
Model validation:
 As a first check, I made the PRM and SRM transparent, and used the inbuilt routines in FINESSE to modematch the input beam to the arm cavities.
 I then scanned one arm cavity about a resonance, and compared the transmisison profile to the analytical FP cavity expression  agreement was good.
 Next, I wanted to get a sensing matrix for the DRMI (no arms) configuration (see attached ipynb notebook).
 First, I make the ETMs in the model transparent
 I started with the phases for the BS, PRM and SRM set to their "naive" values of 0, 0 and 90 (for the standard DRMI configuration)
 I then scanned these optics around, used various PDs to look at the points where appropriate circulating fields reached their maximum values, and updated the phase of the optic with these values.
 Next, I set the demod phase of various RFPDs such that the PDH error signal is entirely in one quadrature. I use the RFPDs in pairs, with demod phases separated by 90 degrees. I arbitrarily set the demod phase of the Q phase PD as 90 + phase of I phase PD. I also tried to mimic the RFPDIFO DoF pairing that we use for the actual IFO  so for example, PRCL is controlled by REFL11_I.
 Confident that I was close enough to the ideal operating point, I then fed the error signals from these RFPDs to the "lock" routine in FINESSE. The manual recommends setting the locking loop gain to 1/optical gain, which is what I did.
 The tunings for the BS and RMs in the attached kat file are the result of this tuning.
 For the actual sensing matrix, I moved each of PRM, BS and SRM +/5 degrees (~15nm) around each resonance. I then computed the numerical derivative around the zero crossing of each RFPD signal, and then plotted all of this in some RADAR plots  see Attachment #1.
Explanation of Attachments and Discussion:
 Attachment #1  Computed sensing matrix from this model. Compare to an actual measurement, for example here  the relative angle between the sensing matrix elements dont exactly line up with what is measured. EQ suggested today that I should look into tuning the relative phase between the RF frequencies at the EOM. Nevertheless, I tried comparing the magnitudes of the MICH sensing element in AS55 Q  the model tells me that it should be ~7.8*10^5 W/m. In this elog, I measured it to be 2.37*10^5 W/m. On the AS table, there is a 5050 BS splitting the light between the AS55 and AS110 photodiodes which is not accounted for in the model. Factoring this in, along with the fact that there are 6 invaccuum steering mirrors (assume 98% reflectivity for these), 3 in air steering mirrors, and the window, the sensing matrix element from the model starts to be in the same ballpark as the measurement, at ~3*10^5 W/m. So the model isn't giving completely crazy results.
 Attachment #2  Example of the signals at various RFPDs in response to sweeping the PRM around its resonance. To be compared with actual IFO data. Teal lines are the "I" phase, and orange lines are "Q" phase.
 Attachment #3  FINESSE kat file and the IPython notebook I used to make these plots.
 Next steps
 More validation against measurements from the actual IFO.
 Try and resolve differences between modeled and measured sensing matrices.
 Get locking working with full IFO  there was a discussion on the mattermost thread about sequential/parallel locking some time ago, I need to dig that up to see what is the right way to get this going. Probably the DRMI operating point will also change, because of the complex reflectivities of the arm cavities seen by the RF sidebands (this effect is not present in the current configuration where I've made the ETMs transparent).
GV Edit: EQ pointed out that my method of taking the slope of the error signal to compute the sensing element isn't the most robust  it relies on choosing points to compute the slope that are close enough to the zero crossing and also well within the linear region of the error signal. Instead, FINESSE allows this computation to be done as we do in the real IFO  apply an excitation at a given frequency to an optic and look at the twicedemodulated output of the relevant RFPD (e.g. for PRCL sensing element in the 1f DRMI configuration, drive PRM and demodulate REFL11 at 11MHz and the drive frequenct). Attachment #4 is the sensing matrix recomputed in this way  in this case, it produces almost identical results as the slope method, but I think the doubledemod technique is better in that you don't have to worry about selecting points for computing the slope etc.
