Hi, recently we are trying to simulate the current response of a 3D diamond detector, in which the electrodes’ resistance matters and we need to introduce a series of weighting fields at different time points (we already have the .dat and .grd files). Since we are using TCAD to generate electric fields, I notice there is a function in Garfield::ComponentTcad3d class:
I wonder how it can be used? like, can it be called multiple times in a simulation to introduce multiple (~10) weighting fields? If not, is there any methods to calculate the induced current using these fields in Garfield?
The function you need to use depends on the boundary condition applied to the electrode for which you’re calculating the weighting field:
dv·δ(t)
dv·Θ(t)
For the former (dv·δ(t)), you should use the SetDynamicWeightingField function. For the latter (dv·Θ(t)), you can use SetDynamicWeightingPotential. Both functions are intended for sensors with a doping profile, where the weighting field is calculated by adding a small voltage increment (dv) to the electrode under study while the sensor is biased. The weighting field is then obtained by subtracting the field map of the biased sensor without perturbation (datfile1) from the map with the perturbation (datfile2).
In your case, this is not needed. Instead:
datfile1 can be a file where all electrodes are grounded.
datfile2 is the configuration where all electrodes are grounded except the one of interest, which is set to a voltage dv.
To import each time slice of the solution, you can call SetDynamicWeightingPotential or SetDynamicWeightingFieldfor each time t. Note that when t = 0, it is automatically flagged as the prompt component.