solve : find optimum fit in a grid of model spectra SCL Sfit SLV Commands
solve is one of the principal SFIT commands. It initiates an optimisation by starting with a grid of theoretical spectra, defined by model or read_grid, a set of starting parameters and an observed spectrum. It uses one of four methods to find a best-fit solution according to a minimum chi2 criterion. The choices of model grid, method and starting parameters are very important; not every combination is suitable for every type of problem. The parameters to be optimised include:models,model2 : read grid of model spectraTeff, log g, nA, v sin i, vradbeing effective temperature, surface gravity, an abundance variable, rotation velocity and radial velocity for one or two stars, andR2 / R1being the relative radius of the second star, if present.
It is important to appreciate how to initialise the model parameters and to define which are to be solved for. In general, each parameter takes two arguments. In the case of amoeba, these specify a starting value and the maximum amount by which this value is be allowed to vary. For levenburg, only a starting value and a zero or non-zero increment are required. If the increment is zero, then the value is fixed. In the genetic solution, the values represent upper and lower bounds for the parameter space to be explored. Values may be initialised en bloc or individually with the slv_... and fix_... commands
These commands read in a grid of model spectra. A variety of file formats are supported. The grid must be rectangular or cuboidal, but the stepsizes do not need to be regular. The normal axes are effective temperature, surface gravity and H/He abundance. An intermediate wavelength grid must be defined in order to allow for inhomogeneity in the input spectra. Values for the parameters are taken from the input models themselves, to avoid mixups. The syntax of the command arguments must be explicit.read_grid <file> : read model grid from binary file
model{ <nfmt> ! file format specifier <title> ! a user-defined title for the model grid <NT> <NG> <NA> ! numbers of temperatures, gravities and abundaces in the grid <ws> <we> <dw> ! wavelength start, end and increments in the rebinned grid <file_1_1_1> <file_2_1_1> <file...> <file_NT_NG_NA> }
save_grid <file> : save model grid to binary file
make_grid : reads models and saves tetrahedralized grid directly to a binary file
This command reads in a list of model spectra, organises it into a tetrahedralized grid, and saves it as a single binary file. The spectra should include total flux, and continuum flux, so that normalized fluxes can be recovered. Several file formats may be supported. Three independent variables are supported in the tetrahedralized grid, these are generally effective temperature, surface gravity and H/He abundance. An intermediate wavelength grid must be defined in order to allow for inhomogeneity in the input spectra. Values for the parameters are taken from the input models themselves, to avoid mixups. The syntax of the command arguments must be explicit.load_grid <file> : reads tetrahedralized model grid
make_grid{ <nfmt> ! file format specifier <file> ! name of file in which to save the grid ** can be large ** <title> ! a user-defined title for the model grid <ws> <we> <dw> ! wavelength start, end and increments in the rebinned grid <file_1> <file_2> <file...> }
grid_log_he : Convert the abundance grid to log scale
Convert the abundance grid from an assumed natural scale (e.g. relative abundance by number: nA) to a logarithmic scale using the transformation:zeta = log ( nA / ( 1 - nA ) )
slv_... <p1> <p2> : Initialise parameter for solve
slv_teff1 <Teff/1000> <dT> : Effective temperature (K/1000) -- Star 1Parameters may be set using the following commands. The command may take two, one or no arguments.
<p1>: The first argument represents a starting value for the solution. If not given, the default value is either (i) the last value obtained by slv or set by fix or else (2) it is defined internally by sfit. [ For Teff, log g, ahe, this should be a median value from the model grid -- to be done ]
<p2>: The second argument represents, in the case of amoeba, the initial size of the simplex. In the case of levenburg, the second argument should be non-zero. A zero value is equivalent to using fix_.... If the second argument is omitted, sfit will try to set a sensible value.It may be seen that slv_... (and fix_...) may be used successfully with no arguments, alternating between keeping some parameters fixed while allowing others to vary. Careful experimentation is required to find the most reliable combination of solve steps for any given type of data.
slv_logg1 <log g> <dg> : Surface gravity (log cgs) -- Star 1
slv_ahe1 <nhe> <dnHe> : Helium abundance -- Star 1
slv_vsini1 <vsini> <dvsini> : Projected rotation velocity -- Star 1
slv_rad1 <log R1/c> <dR> : Relative radius -- Star 1 (log arbitrary)
slv_vrad1 <vrad> <dvr> : Projected radial velocity -- Star 1
slv_teff2 <Teff/1000> <dT> : Effective temperature (K/1000) -- Star 2
...: repeat above for Star 2
slv_Ebv <R> <dR> : Extinction coefficient E(B-V)
fix_... <p1> : Fix parameter for solve
fix_teff1 [<Teff/1000>] : Effective temperature (K/1000) -- Star 1Parameters may be fixed using the following commands. The command may take one or no arguments. One argument specifies the value at which the parameter is to be fixed. No arguments implies that the value obtained as a result of a previous solution, or as previously fixed, should be used.
fix_logg1 [<log g>] : Surface gravity (log cgs) -- Star 1
fix_ahe1 [<nhe>] : Helium abundance -- Star 1
fix_vsini1 [<vsini>] : Projected rotation velocity -- Star 1
fix_rad1 [<log R2/c>] : Relative radius -- Star 1 (log arbitrary)
fix_vrad1 [<vrad>] : Projected radial velocity -- Star 1
fix_teff2 [<Teff/1000>] : Effective temperature (K/1000) -- Star 2
...: repeat above for Star 2
fix_Ebv <R> <dR> : Extinction coefficient E(B-V)
parameters {...} : Initialise all "slv" parameters
Old format: all arguments must be defined explicitly
parameters {
}
<Teff_1>
<g_1>
<nA_1>
<vsini_1>
<R_1/R>
<vrad_1>
<Teff_2>
<g_2>
<nA_2>
<vsini_2>
<R_2/R>
<vrad_2><dT_1>
<dg_1>
<dn_1>
<dvsini_1>
<dR_1>
<dvrad_1>
<dT_2>
<dg_2>
<dn_2>
<dvsini_2>
<dR_2>
<dvrad_2>! Effective temperature for primary (K/1000)
! Surface gravity (log cgs)
! Surface composition parameter: depends on model grid
! Projected rotation velocity (km/s)
! Relative radius (normally 1)
! Radial velocity (km/s)
! Effective temperature for secondary (K/1000)
! Surface gravity (log cgs)
! Surface composition parameter:depends on model grid
! Projected rotation velocity (km/s)
! Relative radius (very small for only one star)
! Radial velocity (km/s)If there is only one spectrum to fit, one should set default parameters for the secondary which lie within the model grid, with <R_2/R> being a very small value. If method = genetic, then the parameters must be defined as ranges, rather than initial values. The lower and higher limits for each of the stellar parameters should be entered. If the parameter is not to be varied its fixed value should be entered into the first column of the three and zero entered into the second column. Otherwise the lower limit should go into the first column and the upper limit in the second column.