31 return d *
pow(T0/T, m) * (1 + A * log(T/T0));
37 return g *
pow(T0/T, n);
43 return g + n * (T - T0);
69 D2 = sP * sd2 + aP * ad2;
87 const Index this_species,
88 const Index h2o_species,
92 gamma_0=gamma_2=eta=df_0=df_2=f_VC=0;
98 GetAirBroadening(gamma_0, df_0, ref_temperature / temperature, pressure, self_pressure);
102 this_species, h2o_species, vmrs);
105 GetPlanetaryBroadening(gamma_0, df_0, ref_temperature / temperature, pressure, self_pressure, broad_spec_locations, vmrs);
111 GetTestBroadening(gamma_0, gamma_2, df_0, vmrs, ref_temperature / temperature, pressure, h2o_species);
114 throw std::runtime_error(
"Not implemented");
118 pressure-self_pressure, self_pressure, temperature, ref_temperature,
128 pressure-self_pressure, self_pressure, temperature, ref_temperature,
152 const Index this_species,
153 const Index h2o_species,
157 dgamma_0_dT=dgamma_2_dT=deta_dT=ddf_0_dT=ddf_2_dT=df_VC_dT=0;
179 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
326 const Numeric& self_pressure)
const 340 throw std::runtime_error(
"Planetary broadening calculation type do not support " 341 "pressure broadening partial derivatives.\n");
344 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
353 const Index this_species,
354 const Index h2o_species,
367 this_species, h2o_species, vmrs);
370 throw std::runtime_error(
"Planetary broadening calculation type do not support " 371 "pressure broadening partial derivatives.\n");
374 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
382 const Index this_species,
383 const Index h2o_species,
392 throw std::runtime_error(
"Air broadening calculation type does not support water broadening partial derivatives.\n" 393 "Please check your catalog type and input lines to ensure that you are doing what you expect.\n");
397 this_species, h2o_species, vmrs);
400 throw std::runtime_error(
"Planetary broadening calculation type do not support " 401 "pressure broadening partial derivatives.\n");
404 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
411 const Numeric& self_pressure)
const 419 throw std::runtime_error(
"Air broadening calculations does not support self pressure shift partial derivatives.\n" 420 "Please check your catalog type and input lines to ensure that you are doing what you expect.\n");
426 throw std::runtime_error(
"Planetary broadening calculation type do not support " 427 "pressure broadening partial derivatives.\n");
430 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
439 const Index this_species,
440 const Index h2o_species,
453 this_species, h2o_species, vmrs);
456 throw std::runtime_error(
"Planetary broadening calculation type do not support " 457 "pressure broadening partial derivatives.\n");
460 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
468 const Index this_species,
469 const Index h2o_species,
478 throw std::runtime_error(
"Air broadening calculation type does not support water broadening partial derivatives.\n" 479 "Please check your catalog type and input lines to ensure that you are doing what you expect.\n");
483 this_species, h2o_species, vmrs);
486 throw std::runtime_error(
"Planetary broadening calculation type do not support " 487 "pressure broadening partial derivatives.\n");
490 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
498 const Numeric& self_pressure)
const 510 theta, self_pressure);
513 throw std::runtime_error(
"Planetary broadening calculation type do not support " 514 "pressure broadening partial derivatives.\n");
517 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
527 const Index this_species,
528 const Index h2o_species,
539 theta, pressure, self_pressure);
543 theta, pressure, self_pressure,
544 this_species, h2o_species, vmrs);
547 throw std::runtime_error(
"Planetary broadening calculation type do not support " 548 "pressure broadening partial derivatives.\n");
551 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
559 const Index this_species,
560 const Index h2o_species,
569 throw std::runtime_error(
"Air broadening calculation type does not support water broadening partial derivatives.\n" 570 "Please check your catalog type and input lines to ensure that you are doing what you expect.\n");
575 this_species, h2o_species, vmrs);
578 throw std::runtime_error(
"Planetary broadening calculation type do not support " 579 "pressure broadening partial derivatives.\n");
582 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
606 gamma_dvmr = mdata[0][0] *
pow(theta, mdata[1][0]) * pressure;
610 throw std::runtime_error(
"You have defined an unknown broadening mechanism.\n");
623 const Numeric& self_pressure)
const 626 mdata[2][0] *
pow(theta,
mdata[3][0]) * (pressure-self_pressure)
629 mdata[4][0] * pressure
639 const Numeric& self_pressure)
const 643 dgamma_dT = - (
mdata[3][0] *
644 mdata[2][0] *
pow(theta,
mdata[3][0]) * (pressure-self_pressure)
649 mdata[4][0] * pressure
656 const Numeric& self_pressure)
const 658 gamma_dSelf =
pow(theta,
mdata[1][0]) * self_pressure;
665 const Numeric& self_pressure)
const 667 gamma_dForeign =
pow(theta,
mdata[3][0]) * (pressure-self_pressure);
682 const Numeric& self_pressure)
const 684 Numeric log_theta = log(theta);
685 gamma_dSelfExponent =
mdata[0][0] *
pow(theta,
mdata[1][0]) * self_pressure * log_theta;
686 psf_dSelfExponent = 0.;
694 const Numeric& self_pressure)
const 696 Numeric log_theta = log(theta);
697 gamma_dForeignExponent =
mdata[2][0] *
pow(theta,
mdata[3][0]) * (pressure-self_pressure) * log_theta;
698 psf_dForeignExponent =
712 const Index this_species,
713 const Index h2o_species,
716 if(this_species==h2o_species)
719 mdata[1][0] *
pow(theta,
mdata[1][1]) * (pressure-self_pressure)
724 + mdata[0][2] *
pow(theta,(
Numeric)0.25+(
Numeric)1.5*mdata[0][1]) * self_pressure;
726 else if(h2o_species==-1)
729 mdata[1][0] *
pow(theta,
mdata[1][1]) * (pressure-self_pressure)
734 + mdata[0][2] *
pow(theta,(
Numeric)0.25+(
Numeric)1.5*mdata[0][1]) * self_pressure;
739 mdata[1][0] *
pow(theta,
mdata[1][1]) * (pressure-self_pressure-vmrs[h2o_species]*pressure)
741 +
mdata[2][0] *
pow(theta,
mdata[2][1]) * vmrs[h2o_species]*pressure;
745 + mdata[0][2] *
pow(theta,(
Numeric)0.25+(
Numeric)1.5*mdata[0][1]) * self_pressure
746 + mdata[2][2] *
pow(theta,(
Numeric)0.25+(
Numeric)1.5*mdata[2][1]) * vmrs[h2o_species]*pressure;
757 const Index this_species,
758 const Index h2o_species,
763 if(this_species==h2o_species)
773 else if(h2o_species==-1)
786 mdata[1][1] *
mdata[1][0] *
pow(theta,
mdata[1][1]) * (pressure-self_pressure-vmrs[h2o_species]*pressure)
788 +
mdata[2][1] *
mdata[2][0] *
pow(theta,
mdata[2][1]) * vmrs[h2o_species]*pressure ) / T;
800 const Numeric& self_pressure)
const 802 gamma_dSelf =
pow(theta,
mdata[0][1]) * self_pressure;
810 const Index this_species,
811 const Index h2o_species,
814 if(this_species==h2o_species || h2o_species==-1)
815 gamma_dForeign =
pow(theta,
mdata[1][1]) * (pressure-self_pressure);
817 gamma_dForeign =
pow(theta,
mdata[1][1]) * (pressure-self_pressure-vmrs[h2o_species]*pressure);
824 const Index this_species,
825 const Index h2o_species,
828 if(this_species==h2o_species)
829 throw std::runtime_error(
"Use \"Self broadening\" types of derivatives rather than water broadening for water lines.\n");
830 else if(h2o_species==-1)
837 gamma_dWater =
pow(theta,
mdata[2][1]) * vmrs[h2o_species]*pressure;
843 const Numeric& self_pressure)
const 853 const Index this_species,
854 const Index h2o_species,
857 if(this_species==h2o_species || h2o_species==-1)
858 psf_dForeign =
pow(theta,
mdata[1][1]) * (pressure-self_pressure);
860 psf_dForeign =
pow(theta,
mdata[1][1]) * (pressure-self_pressure-vmrs[h2o_species]*pressure);
867 const Index this_species,
868 const Index h2o_species,
871 if(this_species==h2o_species)
872 throw std::runtime_error(
"Use \"Self broadening\" types of derivatives rather than water broadening for water lines.\n");
873 else if(h2o_species==-1)
887 const Numeric& self_pressure)
const 889 Numeric log_theta = log(theta);
890 gamma_dSelfExponent =
mdata[0][0] *
pow(theta,
mdata[0][1]) * self_pressure * log_theta;
900 const Index this_species,
901 const Index h2o_species,
904 Numeric log_theta = log(theta);
905 if(this_species==h2o_species || h2o_species==-1)
907 gamma_dForeignExponent =
mdata[1][0]*
pow(theta,
mdata[1][1]) * (pressure-self_pressure) * log_theta;
908 psf_dForeignExponent =
mdata[1][2] *
pow(theta,(
Numeric)0.25+(
Numeric)1.5*
mdata[1][1]) * (pressure-self_pressure) * log_theta * 1.5;
912 gamma_dForeignExponent =
mdata[1][0]*
pow(theta,
mdata[1][1]) * (pressure-self_pressure-vmrs[h2o_species]*pressure) * log_theta;
913 psf_dForeignExponent =
mdata[1][2] *
pow(theta,(
Numeric)0.25+(
Numeric)1.5*
mdata[1][1]) * (pressure-self_pressure-vmrs[h2o_species]*pressure) * log_theta * 1.5;
922 const Index this_species,
923 const Index h2o_species,
926 if(this_species==h2o_species)
927 throw std::runtime_error(
"Use \"Self broadening\" types of derivatives rather than water broadening for water lines.\n");
928 else if(h2o_species==-1)
930 gamma_dWaterExponent = 0.0;
931 psf_dWaterExponent = 0.;
937 Numeric log_theta = log(theta);
938 gamma_dWaterExponent =
mdata[2][0] *
pow(theta,
mdata[2][1]) * vmrs[h2o_species]*pressure * log_theta;
939 psf_dWaterExponent =
mdata[2][2] *
pow(theta,(
Numeric)0.25+(
Numeric)1.5*
mdata[2][1]) * vmrs[h2o_species]*pressure * 1.5 * log_theta;
1174 const Numeric& pressure)
const 1192 const Numeric& pressure)
const 1219 const Numeric& pressure)
const 1244 const Numeric& pressure)
const 1272 const Index h2o_index)
const 1276 gamma0 = (
mdata[0][0] *
pow(theta,
mdata[1][0]) * (1 - vmrs[h2o_index]) +
1277 mdata[2][0] *
pow(theta,
mdata[3][0]) * vmrs[h2o_index]) * pressure ;
1279 delta0 = (
mdata[4][0] * (1 - vmrs[h2o_index]) +
1280 mdata[5][0] * vmrs[h2o_index]) * pressure;
1282 gamma2 = (
mdata[6][0] * (1 - vmrs[h2o_index]) +
1283 mdata[7][0] * vmrs[h2o_index]) * pressure;
1288 delta0 =
mdata[4][0] * pressure;
1289 gamma2 =
mdata[6][0] * pressure;
1303 const Numeric& air_pressure_DF,
1308 const Numeric& dair_pressure_DF)
1313 for(
Index ii=0;ii<5;ii++)
1315 mdata[ii].resize(1);
1319 mdata[1][0] = nself;
1322 mdata[4][0] = air_pressure_DF;
1350 mdata[0][2] = sdelta;
1355 mdata[1][2] = adelta;
1360 mdata[2][2] = wdelta;
1367 const Vector& foreign_gamma,
1369 const Vector& foreign_pressure_DF)
1372 assert(n_foreign.
nelem()==foreign_gamma.
nelem());
1373 assert(foreign_pressure_DF.
nelem()==foreign_gamma.
nelem());
1378 for(
Index ii=0;ii<2;ii++)
1380 mdata[ii].resize(1);
1383 mdata[1][0] = nself;
1384 mdata[2] = foreign_gamma;
1385 mdata[3] = n_foreign;
1386 mdata[4] = foreign_pressure_DF;
1402 for(
Index ii=0;ii<2;ii++)
1404 mdata[ii].resize(4);
1407 mdata[0][0] = gamma0;
1408 mdata[1][0] = gamma0_exp;
1410 mdata[0][1] = gamma2;
1411 mdata[1][1] = gamma2_exp;
1413 mdata[0][2] = delta0;
1414 mdata[1][2] = delta0_exp;
1416 mdata[0][3] = delta2;
1417 mdata[1][3] = delta2_exp;
1437 for(
Index ii=0;ii<2;ii++)
1439 mdata[ii].resize(4);
1442 mdata[0][0] = gamma0;
1443 mdata[1][0] = gamma0_exp;
1445 mdata[0][1] = gamma2;
1446 mdata[1][1] = gamma2_exp;
1448 mdata[0][2] = delta0;
1449 mdata[1][2] = delta0_exp;
1451 mdata[0][3] = delta2;
1452 mdata[1][3] = delta2_exp;
1455 mdata[1][4] = fvc_exp;
1458 mdata[1][5] = eta_exp;
1463 const Numeric& gamma0_air_exp,
1465 const Numeric& gamma0_water_exp,
1474 for(
Index ii=0;ii<8;ii++)
1476 mdata[ii].resize(1);
1479 mdata[0][0] = gamma0_air;
1480 mdata[1][0] = gamma0_air_exp;
1482 mdata[2][0] = gamma0_water;
1483 mdata[3][0] = gamma0_water_exp;
1485 mdata[4][0] = delta0_air;
1486 mdata[5][0] = delta0_water;
1488 mdata[6][0] = gamma2_air;
1489 mdata[7][0] = gamma2_water;
1498 const Index this_species,
1499 const Index h2o_species,
1508 mdata[0][0]+=change;
1511 mdata[0][0]+=change;
1512 if(this_species==h2o_species)
1513 mdata[2][0]+=change;
1516 mdata[0][0]+=change;
1517 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1518 if(broad_spec_locations[ii]==-2)
1519 mdata[2][ii]+=change;
1522 throw std::runtime_error(
"ChangeSelf: Cannot recognize type");
1526 const Index this_species,
1527 const Index h2o_species,
1536 mdata[1][0]+=change;
1539 mdata[0][1]+=change;
1540 if(this_species==h2o_species)
1541 mdata[2][1]+=change;
1544 mdata[1][0]+=change;
1545 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1546 if(broad_spec_locations[ii]==-2)
1547 mdata[3][ii]+=change;
1550 throw std::runtime_error(
"ChangeSelfExponent: Cannot recognize type");
1554 const Index this_species,
1555 const Index h2o_species,
1564 mdata[0][0]=new_value;
1567 mdata[0][0]=new_value;
1568 if(this_species==h2o_species)
1569 mdata[2][0]=new_value;
1572 mdata[0][0]=new_value;
1573 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1574 if(broad_spec_locations[ii]==-2)
1575 mdata[2][ii]=new_value;
1578 throw std::runtime_error(
"SetSelf: Cannot recognize type");
1582 const Index this_species,
1583 const Index h2o_species,
1592 mdata[1][0]=new_value;
1595 mdata[0][1]=new_value;
1596 if(this_species==h2o_species)
1597 mdata[2][1]=new_value;
1600 mdata[1][0]=new_value;
1601 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1602 if(broad_spec_locations[ii]==-2)
1603 mdata[3][ii]=new_value;
1606 throw std::runtime_error(
"SetSelfExponent: Cannot recognize type");
1610 const Index this_species,
1611 const Index h2o_species,
1620 mdata[0][0]*=1.0e0+change;
1623 mdata[0][0]*=1.0e0+change;
1624 if(this_species==h2o_species)
1625 mdata[2][0]*=1.0e0+change;
1628 mdata[0][0]*=1.0e0+change;
1629 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1630 if(broad_spec_locations[ii]==-2)
1631 mdata[2][ii]*=1.0e0+change;
1634 throw std::runtime_error(
"ChangeSelfRelative: Cannot recognize type");
1638 const Index this_species,
1639 const Index h2o_species,
1648 mdata[1][0]*=1.0e0+change;
1651 mdata[0][1]*=1.0e0+change;
1652 if(this_species==h2o_species)
1653 mdata[2][1]*=1.0e0+change;
1656 mdata[1][0]*=1.0e0+change;
1657 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1658 if(broad_spec_locations[ii]==-2)
1659 mdata[3][ii]*=1.0e0+change;
1662 throw std::runtime_error(
"ChangeSelfExponentRelative: Cannot recognize type");
1674 mdata[2][0]+=change;
1677 mdata[1][0]+=change;
1680 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1681 if(broad_spec_locations[ii]!=-2)
1682 mdata[2][ii]+=change;
1685 throw std::runtime_error(
"ChangeForeign: Cannot recognize type");
1697 mdata[3][0]+=change;
1700 mdata[1][1]+=change;
1703 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1704 if(broad_spec_locations[ii]!=-2)
1705 mdata[3][ii]+=change;
1708 throw std::runtime_error(
"ChangeForeignExponent: Cannot recognize type");
1720 mdata[2][0]=new_value;
1723 mdata[1][0]=new_value;
1726 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1727 if(broad_spec_locations[ii]!=-2)
1728 mdata[2][ii]=new_value;
1731 throw std::runtime_error(
"SetForeign: Cannot recognize type");
1743 mdata[3][0]=new_value;
1746 mdata[1][1]=new_value;
1749 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1750 if(broad_spec_locations[ii]!=-2)
1751 mdata[3][ii]=new_value;
1754 throw std::runtime_error(
"SetForeignExponent: Cannot recognize type");
1766 mdata[2][0]*=1.0e0+change;
1769 mdata[1][0]*=1.0e0+change;
1772 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1773 if(broad_spec_locations[ii]!=-2)
1774 mdata[2][ii]*=1.0e0+change;
1777 throw std::runtime_error(
"ChangeForeignRelative: Cannot recognize type");
1789 mdata[3][0]*=1.0e0+change;
1792 mdata[1][1]*=1.0e0+change;
1795 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1796 if(broad_spec_locations[ii]!=-2)
1798 mdata[3][ii]*=1.0e0+change;
1801 throw std::runtime_error(
"ChangeForeignExponentRelative: Cannot recognize type");
1813 mdata[4][0]*=1.0e0+change;
1816 mdata[1][2]*=1.0e0+change;
1819 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1820 if(broad_spec_locations[ii]!=-2)
1821 mdata[4][ii]*=1.0e0+change;
1824 throw std::runtime_error(
"ChangeForeignRelative: Cannot recognize type");
1836 mdata[4][0]+=change;
1839 mdata[1][2]+=change;
1842 for(
Index ii=0;ii<broad_spec_locations.
nelem();ii++)
1843 if(broad_spec_locations[ii]!=-2)
1844 mdata[4][ii]+=change;
1847 throw std::runtime_error(
"ChangeForeignRelative: Cannot recognize type");
1881 throw std::runtime_error(
"Input pressure broadening is of wrong length.\n");
1901 SetSDAirFromCatalog(input[0], input[1], input[2], input[3], input[4], input[5], input[6], input[7]);
1904 SetHTPAirFromCatalog(input[0], input[1], input[2], input[3], input[4], input[5], input[6], input[7], input[8], input[9], input[10], input[11]);
1918 else if(input ==
"N2")
1920 else if(input ==
"WA")
1922 else if(input ==
"AP")
1924 else if(input ==
"SD-AIR")
1926 else if(input ==
"HTP-AIR")
1928 else if(input ==
"TESTING")
1930 else if(input ==
"PB_SD_TEST_WATER")
1932 else if(input ==
"PB_VOIGT_TEST_WATER")
1935 throw std::runtime_error(
"StorageTag2SetType: Cannot recognize tag.\n");
1947 output[0]=
mdata[0][0];
1948 output[1]=
mdata[1][0];
1949 output[2]=
mdata[2][0];
1950 output[3]=
mdata[3][0];
1951 output[4]=
mdata[4][0];
1959 output[0]=
mdata[0][0];
1960 output[1]=
mdata[0][1];
1961 output[2]=
mdata[0][2];
1962 output[3]=
mdata[1][0];
1963 output[4]=
mdata[1][1];
1964 output[5]=
mdata[1][2];
1965 output[6]=
mdata[2][0];
1966 output[7]=
mdata[2][1];
1967 output[8]=
mdata[2][2];
1970 output[0]=
mdata[0][0];
1971 output[7]=
mdata[1][0];
2015 return "PB_SD_TEST_WATER";
2017 return "PB_VOIGT_TEST_WATER";
2019 throw std::runtime_error(
"Cannot save pure testing version");
INDEX Index
The type to use for all integer numbers and indices.
Numeric test_pressure_shift(const Numeric &T, const Numeric &T0, const Numeric &A, const Numeric &d, const Numeric &m)
void GetAirBroadening_dSelfExponent(Numeric &gamma_dSelfExponent, Numeric &psf_dSelfExponent, const Numeric &theta, const Numeric &self_pressure) const
void GetAirAndWaterBroadening_dWaterPsf(Numeric &psf_dWater, const Numeric &theta, const Numeric &pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void SetDataFromVectorWithKnownType(ConstVectorView input)
void SetAirBroadeningFromCatalog(const Numeric &sgam, const Numeric &nself, const Numeric &agam, const Numeric &nair, const Numeric &air_pressure_DF, const Numeric &dsgam, const Numeric &dnself, const Numeric &dagam, const Numeric &dnair, const Numeric &dair_pressure_DF)
The HITRAN air broadening scheme was used exclusively for a long time by ARTS.
void SetPlanetaryBroadeningFromCatalog(const Numeric &sgam, const Numeric &nself, const Vector &foreign_gamma, const Vector &n_foreign, const Vector &foreign_pressure_DF)
The ESA planetary study introduced species-dependent pressure broadenings.
Vector vmrs(const ConstVectorView &atmospheric_vmrs, const ArrayOfArrayOfSpeciesTag &atmospheric_species, const QuantumIdentifier &self, const ArrayOfSpeciesTag &lineshape_species, bool self_in_list, bool bath_in_list, Type type)
Returns a VMR vector for this model's main calculations.
void SetHTPAirFromCatalog(const Numeric &gamma0, const Numeric &gamma0_exp, const Numeric &gamma2, const Numeric &gamma2_exp, const Numeric &delta0, const Numeric &delta0_exp, const Numeric &delta2, const Numeric &delta2_exp, const Numeric &fvc, const Numeric &fvc_exp, const Numeric &eta, const Numeric &eta_exp)
TESTING *.
void ChangeSelfRelative(const Numeric &change, const Index this_species, const Index h2o_species, const ArrayOfIndex &broad_spec_locations)
Method for changing self-broadening by relative amount if available Error if not. ...
void SetSelfExponent(const Numeric &new_value, const Index this_species, const Index h2o_species, const ArrayOfIndex &broad_spec_locations)
Method for setting self-broadening exponent if available Error if not.
void GetPressureBroadeningParams_dForeignGamma(Numeric &gamma_dForeign, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void GetVectorFromData(Vector &output) const
Index nelem() const
Number of elements.
void GetAirAndWaterBroadening_dForeignGamma(Numeric &dgamma_dForeign, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void SetInternalDerivatives(ComplexVector &derivatives, const ArrayOfRetrievalQuantity &ppd, const QuantumIdentifier &QI, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
Sets a vector of derivatives that fits with the QuantumIdentifier and partial derivative.
void GetSDAirBroadening(Numeric &gamma0, Numeric &gamma2, Numeric &delta0, Numeric &delta2, const Numeric &theta, const Numeric &pressure) const
Speed-dependent broadening calculations.
void GetAirBroadening_dForeignGamma(Numeric &gamma_dForeign, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure) const
void GetPressureBroadeningParams_dForeignExponent(Numeric &gamma_dForeignExponent, Numeric &psf_dForeignExponent, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void GetPressureBroadeningParams_dWaterPsf(Numeric &psf_dWater, const Numeric &theta, const Numeric &pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
String Type2StorageTag() const
void GetSDAirBroadening_dT(Numeric &dgamma0, Numeric &dgamma2, Numeric &ddelta0, Numeric &ddelta2, const Numeric &T, const Numeric &T0, const Numeric &pressure) const
void GetPressureBroadeningParams_dSelfGamma(Numeric &gamma_dSelf, const Numeric &theta, const Numeric &self_pressure) const
void GetAirBroadening_dForeignExponent(Numeric &gamma_dForeignExponent, Numeric &psf_dForeignExponent, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure) const
void ChangeForeignShiftRelative(const Numeric &change, const ArrayOfIndex &broad_spec_locations)
Method for changing foreing-broadening shift(s) by relative amount if available Error if not availabl...
void GetTestBroadening(Numeric &gamma0, Numeric &gamma2, Numeric &delta0, ConstVectorView vmrs, const Numeric &theta, const Numeric &pressure, const Index h2o_index) const
void ChangeForeign(const Numeric &change, const ArrayOfIndex &broad_spec_locations)
Method for changing foreing-broadening(s) if available Error if not available and no change to water ...
void GetPressureBroadeningParams_dWaterExponent(Numeric &gamma_dWaterExponent, Numeric &psf_dWaterExponent, const Numeric &theta, const Numeric &pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
Index nelem() const
Returns the number of elements.
void ChangeSelf(const Numeric &change, const Index this_species, const Index h2o_species, const ArrayOfIndex &broad_spec_locations)
Method for changing self-broadening if available Error if not.
void GetPressureBroadeningParams(Numeric &gamma_0, Numeric &gamma_2, Numeric &eta, Numeric &df_0, Numeric &df_2, Numeric &f_VC, const Numeric &T, const Numeric &T0, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, const ArrayOfIndex &broad_spec_locations, ConstVectorView vmrs) const
All broadening calculations are easiset to perform via these calls.
Index ExpectedVectorLengthFromType() const
void GetAirAndWaterBroadening_dSelfExponent(Numeric &dgamma_dSelfExponent, Numeric &dpsf_dSelfExponent, const Numeric &theta, const Numeric &self_pressure) const
void SetAirAndWaterBroadeningFromCatalog(const Numeric &sgam, const Numeric &sn, const Numeric &sdelta, const Numeric &agam, const Numeric &an, const Numeric &adelta, const Numeric &wgam, const Numeric &wn, const Numeric &wdelta)
The HITRAN air broadening scheme was used exclusively for a long time by ARTS.
void GetPlanetaryBroadening(Numeric &gamma, Numeric &deltaf, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const ArrayOfIndex &broad_spec_locations, ConstVectorView vmrs) const
Planetary broadening calculations.
void ChangeSelfExponent(const Numeric &change, const Index this_species, const Index h2o_species, const ArrayOfIndex &broad_spec_locations)
Method for changing self-broadening exponent if available Error if not.
void GetPressureBroadeningParams_dSelfVMR(Numeric &gamma_dvmr, Numeric &split_dvmr, const Numeric &theta, const Numeric &pressure) const
void GetAirAndWaterBroadening(Numeric &gamma, Numeric &deltaf, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
Air and water broadening calculations *.
void GetAirAndWaterBroadening_dSelfGamma(Numeric &dgamma_dSelf, const Numeric &theta, const Numeric &self_pressure) const
void GetAirAndWaterBroadening_dT(Numeric &dgamma_dT, Numeric &ddeltaf_dT, const Numeric &T, const Numeric &T0, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void GetPressureBroadeningParams_dSelfExponent(Numeric &gamma_dSelfExponent, Numeric &psf_dSelfExponent, const Numeric &theta, const Numeric &self_pressure) const
void GetAirAndWaterBroadening_dWaterExponent(Numeric &gamma_dWaterExponent, Numeric &psf_dWaterExponent, const Numeric &theta, const Numeric &pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void GetHTPAirBroadening(Numeric &gamma0, Numeric &gamma2, Numeric &delta0, Numeric &delta2, Numeric &fvc, Numeric &eta, const Numeric &theta, const Numeric &pressure) const
Speed-dependent broadening calculations.
Class to identify and match lines by their quantum numbers.
Numeric test_pressure_broadening(const Numeric &T, const Numeric &T0, const Numeric &g, const Numeric &n)
void GetAirAndWaterBroadening_dWaterGamma(Numeric &gamma_dWater, const Numeric &theta, const Numeric &pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
Contains the pressure broadening data class.
NUMERIC Numeric
The type to use for all floating point numbers.
void GetAirAndWaterBroadening_dForeignExponent(Numeric &dgamma_dForeignExponent, Numeric &dpsf_dForeignExponent, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void SetSDAirFromCatalog(const Numeric &gamma0, const Numeric &gamma0_exp, const Numeric &gamma2, const Numeric &gamma2_exp, const Numeric &delta0, const Numeric &delta0_exp, const Numeric &delta2, const Numeric &delta2_exp)
TESTING.
void ChangeSelfExponentRelative(const Numeric &change, const Index this_species, const Index h2o_species, const ArrayOfIndex &broad_spec_locations)
Method for changing self-broadening exponent by relative amount if available Error if not...
void GetAirAndWaterBroadening_dSelfPsf(Numeric &dpsf_dSelf, const Numeric &theta, const Numeric &self_pressure) const
void GetAirBroadening_dForeignPsf(Numeric &psf_dForeign, const Numeric &theta, const Numeric &pressure) const
Numeric pow(const Rational base, Numeric exp)
Power of.
void SetTestFromCatalog(const Numeric &gamma0_air, const Numeric &gamma0_air_exp, const Numeric &gamma0_water, const Numeric &gamma0_water_exp, const Numeric &gamma2_air, const Numeric &gamma2_water, const Numeric &delta0_air, const Numeric &delta0_water)
TESTING.
void SetForeign(const Numeric &new_value, const ArrayOfIndex &broad_spec_locations)
Method for setting foreing-broadening(s) if available Error if not available and no change to water b...
void SetForeignExponent(const Numeric &new_value, const ArrayOfIndex &broad_spec_locations)
Method for setting foreing-broadening exponent(s) if available Error if not available and no change t...
void GetPlanetaryBroadening_dT(Numeric &dgamma_dT, Numeric &ddeltaf_dT, const Numeric &T, const Numeric &T0, const Numeric &pressure, const Numeric &self_pressure, const ArrayOfIndex &broad_spec_locations, ConstVectorView vmrs) const
void GetAirBroadening(Numeric &gamma, Numeric &deltaf, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure) const
Air broadening calculations.
void voigt_test_params(Numeric &G0, Numeric &D0, const Numeric &aP, const Numeric &sP, const Numeric &T, const Numeric &T0, const Numeric &sA, const Numeric &sg0, const Numeric &sn, const Numeric &sd0, const Numeric &sm, const Numeric &aA, const Numeric &ag0, const Numeric &an, const Numeric &ad0, const Numeric &am)
Numeric test_pressure_broadening_speed_term(const Numeric &T, const Numeric &T0, const Numeric &g, const Numeric &n)
void GetPressureBroadeningParams_dForeignPsf(Numeric &psf_dForeign, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void resize(Index n)
Resize function.
void GetPressureBroadeningParams_dT(Numeric &dgamma_0_dT, Numeric &dgamma_2_dT, Numeric &deta_dT, Numeric &ddf_0_dT, Numeric &ddf_2_dT, Numeric &df_VC_dT, const Numeric &T, const Numeric &T0, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, const ArrayOfIndex &broad_spec_locations, ConstVectorView vmrs) const
void GetPressureBroadeningParams_dSelfPsf(Numeric &psf_dSelf, const Numeric &theta, const Numeric &self_pressure) const
void ChangeForeignShift(const Numeric &change, const ArrayOfIndex &broad_spec_locations)
Method for changing foreing-broadening shift(s) if available Error if not available and no change to ...
A constant view of a Vector.
void SetSelf(const Numeric &new_value, const Index this_species, const Index h2o_species, const ArrayOfIndex &broad_spec_locations)
Method for setting self-broadening if available Error if not.
void GetAirAndWaterBroadening_dForeignPsf(Numeric &dpsf_dForeign, const Numeric &theta, const Numeric &pressure, const Numeric &self_pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
LineRecord class for managing line catalog data.
void StorageTag2SetType(const String &input)
void speed_dependent_test_params(Numeric &G0, Numeric &D0, Numeric &G2, Numeric &D2, const Numeric &aP, const Numeric &sP, const Numeric &T, const Numeric &T0, const Numeric &sA, const Numeric &sg0, const Numeric &sn0, const Numeric &sg2, const Numeric &sn2, const Numeric &sd0, const Numeric &sm, const Numeric &sd2, const Numeric &aA, const Numeric &ag0, const Numeric &an0, const Numeric &ag2, const Numeric &an2, const Numeric &ad0, const Numeric &am, const Numeric &ad2)
void ChangeForeignExponent(const Numeric &change, const ArrayOfIndex &broad_spec_locations)
Method for changing foreing-broadening exponent(s) if available Error if not available and no change ...
void GetAirBroadening_dT(Numeric &dgamma_dT, Numeric &ddeltaf_dT, const Numeric &T, const Numeric &T0, const Numeric &pressure, const Numeric &self_pressure) const
void ChangeForeignExponentRelative(const Numeric &change, const ArrayOfIndex &broad_spec_locations)
Method for changing foreing-broadening exponent(s) by relative amount if available Error if not avail...
void GetPressureBroadeningParams_dWaterGamma(Numeric &gamma_dWater, const Numeric &theta, const Numeric &pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void GetAirBroadening_dSelfGamma(Numeric &gamma_dSelf, const Numeric &theta, const Numeric &self_pressure) const
void GetHTPAirBroadening_dT(Numeric &dgamma0, Numeric &dgamma2, Numeric &ddelta0, Numeric &ddelta2, Numeric &dfvc, Numeric &deta, const Numeric &T, const Numeric &T0, const Numeric &pressure) const
void ChangeForeignRelative(const Numeric &change, const ArrayOfIndex &broad_spec_locations)
Method for changing foreing-broadening(s) by relative amount if available Error if not available and ...