void ForsteriteGrainComposition::setupSelfBefore()
{
    GrainComposition::setupSelfBefore();

    // determine the bulk density and resource filenames based on the grain type
    double density;
    QString heatfile;
    QString opticalfile;
    switch (_type)
    {
    case Crystalline:
        density = 3330.;
        heatfile = "GrainComposition/Min/C_aSil.DAT";
        opticalfile = "GrainComposition/Min/Forsterite_Suto2006.dat";
        break;
    case Amorphous:
        density = 1600.;
        heatfile = "GrainComposition/Themis/C_CM_amFo10Fe30FeS.DAT";
        opticalfile = "GrainComposition/Themis/CM_amFo10Fe30FeS_Jones2013_SKIRT.dat";
        break;
    }
    setBulkDensity(density);
    loadLogHeatCapacityGrid(heatfile);
    loadOpticalGrid(true, opticalfile, false, false, false, false);
}
void ForsteriteGrainComposition::setupSelfBefore()
{
    GrainComposition::setupSelfBefore();

    // determine the bulk density and resource filenames based on the grain type
    double density; QString heatfile; QString opticalfile;
    switch (_type)
    {
    case Crystalline:
        density = 3.33e3;
        heatfile = "C_aSil";
        opticalfile = "Forsterite_Suto2006";
        break;
    case Amorphous:
        density = 3.33e3;
        heatfile = "C_CM_amFo10Fe30FeS";
        opticalfile = "CM_amFo10Fe30FeS_Jones2013_SKIRT";
        break;
    }

    setBulkDensity(density);
    loadLogHeatCapacityGrid("GrainComposition/DustEM/hcap/" + heatfile + ".DAT");
    loadOpticalGrid(true, "GrainComposition/Min/" + opticalfile + ".dat", false, false, false, false);
}