ARTS  2.3.1285(git:92a29ea9-dirty)
pressurebroadeningdata.h
Go to the documentation of this file.
1 /* Copyright (C) 2014
2  R ichard Larsson <ric.larsson@gmail.com>
3 
4  This program is free software; you can redistribute it and/or modify it
5  under the terms of the GNU General Public License as published by the
6  Free Software Foundation; either version 2, or (at your option) any
7  later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
17  USA. */
18 
26 #ifndef pressurebroadeningdata_h
27 #define pressurebroadeningdata_h
28 
29 #include <cmath>
30 #include "array.h"
31 #include "messages.h"
32 #include "matpackI.h"
33 #include "complex.h"
34 #include "jacobian.h"
35 
36 
46 {
47 public:
48 
49  enum PB_Type : Index {
50  PB_NONE, // No pressure broadening
51  PB_AIR_BROADENING, // Air broadening and self broadening only
52  PB_AIR_AND_WATER_BROADENING, // Air, water, and self broadening
53  PB_PLANETARY_BROADENING, // Gas broadening as done for solar system planets
54  PB_SD_AIR_VOLUME, // HTP in air for SD limit
55  PB_HTP_AIR_VOLUME, // HTP in air
56  PB_VOIGT_TEST_WATER, // Voigt parameters for testing
57  PB_SD_TEST_WATER, // SD parameters for testing
58  PB_PURELY_FOR_TESTING // Testing tag for new input structures --- can be changed by anyone...
59  };
60 
61  enum class TestParams : Index { sg0=0, sn0, sd0, sm, sA, sg2, sn2, sd2,
62  ag0, an0, ad0, am, aA, ag2, an2, ad2, COUNT };
63 
64  // Defining an object with no data and no broadening
66 
67  // Use these to get the raw data from this class
68  const PB_Type& Type() const {return mtype;}
69  const ArrayOfVector& Data() const {return mdata;}
70  const ArrayOfVector& DataError() const {return mdataerror;}
71 
72  // The functions below this point sets up pressure broadening schemes from external catalogs and old ARTSCAT
73 
86  void SetAirBroadeningFromCatalog(const Numeric& sgam,
87  const Numeric& nself,
88  const Numeric& agam,
89  const Numeric& nair,
90  const Numeric& air_pressure_DF,
91  const Numeric& dsgam,
92  const Numeric& dnself,
93  const Numeric& dagam,
94  const Numeric& dnair,
95  const Numeric& dair_pressure_DF);
96 
114  const Numeric& sn,
115  const Numeric& sdelta,
116  const Numeric& agam,
117  const Numeric& an,
118  const Numeric& adelta,
119  const Numeric& wgam,
120  const Numeric& wn,
121  const Numeric& wdelta);
122 
123 
135  void SetPlanetaryBroadeningFromCatalog(const Numeric& sgam,
136  const Numeric& nself,
137  const Vector& foreign_gamma,
138  const Vector& n_foreign,
139  const Vector& foreign_pressure_DF);
140 
147  void SetSDAirFromCatalog(const Numeric& gamma0,
148  const Numeric& gamma0_exp,
149  const Numeric& gamma2,
150  const Numeric& gamma2_exp,
151  const Numeric& delta0,
152  const Numeric& delta0_exp,
153  const Numeric& delta2,
154  const Numeric& delta2_exp);
155 
162  void SetHTPAirFromCatalog(const Numeric& gamma0,
163  const Numeric& gamma0_exp,
164  const Numeric& gamma2,
165  const Numeric& gamma2_exp,
166  const Numeric& delta0,
167  const Numeric& delta0_exp,
168  const Numeric& delta2,
169  const Numeric& delta2_exp,
170  const Numeric& fvc,
171  const Numeric& fvc_exp,
172  const Numeric& eta,
173  const Numeric& eta_exp);
174 
181  void SetTestFromCatalog(const Numeric& gamma0_air,
182  const Numeric& gamma0_air_exp,
183  const Numeric& gamma0_water,
184  const Numeric& gamma0_water_exp,
185  const Numeric& gamma2_air,
186  const Numeric& gamma2_water,
187  const Numeric& delta0_air,
188  const Numeric& delta0_water);
189  void GetTestBroadening(Numeric& gamma0,
190  Numeric& gamma2,
191  Numeric& delta0,
193  const Numeric& theta,
194  const Numeric& pressure,
195  const Index h2o_index) const;
196 
203  void SetInternalDerivatives(ComplexVector& derivatives,
204  const ArrayOfRetrievalQuantity& ppd,
205  const QuantumIdentifier& QI,
206  const Numeric& theta,
207  const Numeric& pressure,
208  const Numeric& self_pressure,
209  const Index this_species,
210  const Index h2o_species,
211  ConstVectorView vmrs) const;
212 
213  // Get the Planetary foreign broadening data vector
215 
216  // Get the Planetary foreign broadening exponent data vector
218 
219  // Get the Planetary foreign shift data vector
221 
222  // Get the Planetary foreign broadening data from one position
223  Numeric PlanetaryGammaForeign(Index ii) const { assert(mtype == PB_PLANETARY_BROADENING); return mdata[2][ii]; }
224 
225  // Get the Planetary foreign broadening exponent data from one position
226  Numeric PlanetaryNForeign(Index ii) const { assert(mtype == PB_PLANETARY_BROADENING); return mdata[3][ii]; }
227 
228  // Get the Planetary foreign shift data from one position
229  Numeric PlanetaryDeltaForeign(Index ii) const { assert(mtype == PB_PLANETARY_BROADENING); return mdata[4][ii]; }
230 
231  // Get the Air broadening air pressure broadening
232  Numeric AirBroadeningAgam() const { assert(mtype == PB_AIR_BROADENING); return mdata[2][0]; }
233 
234  // Get the Air broadening air pressure broadening exponent
235  Numeric AirBroadeningNair() const { assert(mtype == PB_AIR_BROADENING); return mdata[3][0]; }
236 
237  // Get the Air broadening air pressure shift
238  Numeric AirBroadeningPsf() const { assert(mtype == PB_AIR_BROADENING); return mdata[4][0]; }
239 
240  // Get the self pressure broadening
241  Numeric Sgam() const { assert(mdata.nelem() != 0); assert(mdata[0].nelem() != 0); return mdata[0][0]; }
242 
243  // Get the self pressure broadening exponent
244  Numeric Nself() const { assert(mdata.nelem() > 0); assert(mdata[1].nelem() != 0); return mdata[1][0]; }
245 
246  // Get the Air broadening air pressure broadening error
247  Numeric AirBroadeningDAgam() const { assert(mtype == PB_AIR_BROADENING); return mdataerror[2][0]; }
248 
249  // Get the Air broadening air pressure broadening exponent error
250  Numeric AirBroadeningDNair() const { assert(mtype == PB_AIR_BROADENING); return mdataerror[3][0]; }
251 
252  // Get the Air broadening air pressure shift error
253  Numeric AirBroadeningDPsf() const { assert(mtype == PB_AIR_BROADENING); return mdataerror[4][0]; }
254 
255  // Get the Air broadening self pressure broadening error
256  Numeric dSgam() const { assert(mtype == PB_AIR_BROADENING); return mdataerror[0][0]; }
257 
258  // Get the Air broadening self pressure broadening exponent error
259  Numeric dNself() const { assert(mtype == PB_AIR_BROADENING); return mdataerror[1][0]; }
260 
271  void ChangeSelf(const Numeric& change,
272  const Index this_species,
273  const Index h2o_species,
274  const ArrayOfIndex& broad_spec_locations);
275 
286  void ChangeSelfExponent(const Numeric& change,
287  const Index this_species,
288  const Index h2o_species,
289  const ArrayOfIndex& broad_spec_locations);
290 
301  void SetSelf(const Numeric& new_value,
302  const Index this_species,
303  const Index h2o_species,
304  const ArrayOfIndex& broad_spec_locations);
305 
316  void SetSelfExponent(const Numeric& new_value,
317  const Index this_species,
318  const Index h2o_species,
319  const ArrayOfIndex& broad_spec_locations);
320 
331  void ChangeSelfRelative(const Numeric& change,
332  const Index this_species,
333  const Index h2o_species,
334  const ArrayOfIndex& broad_spec_locations);
335 
346  void ChangeSelfExponentRelative(const Numeric& change,
347  const Index this_species,
348  const Index h2o_species,
349  const ArrayOfIndex& broad_spec_locations);
350 
359  void ChangeForeign(const Numeric& change,
360  const ArrayOfIndex& broad_spec_locations);
361 
370  void ChangeForeignExponent(const Numeric& change,
371  const ArrayOfIndex& broad_spec_locations);
372 
381  void SetForeign(const Numeric& new_value,
382  const ArrayOfIndex& broad_spec_locations);
383 
392  void SetForeignExponent(const Numeric& new_value,
393  const ArrayOfIndex& broad_spec_locations);
394 
403  void ChangeForeignRelative(const Numeric& change,
404  const ArrayOfIndex& broad_spec_locations);
405 
414  void ChangeForeignExponentRelative(const Numeric& change,
415  const ArrayOfIndex& broad_spec_locations);
416 
425  void ChangeForeignShiftRelative(const Numeric& change,
426  const ArrayOfIndex& broad_spec_locations);
427 
436  void ChangeForeignShift(const Numeric& change,
437  const ArrayOfIndex& broad_spec_locations);
438 
439  // Use these to return data in the format required by the line shape calculator
440 
451  void GetAirBroadening(Numeric& gamma,
452  Numeric& deltaf,
453  const Numeric& theta,
454  const Numeric& pressure,
455  const Numeric& self_pressure) const;
456  void GetAirBroadening_dT(Numeric& dgamma_dT,
457  Numeric& ddeltaf_dT,
458  const Numeric& T,
459  const Numeric& T0,
460  const Numeric& pressure,
461  const Numeric& self_pressure) const;
462  void GetAirBroadening_dSelfGamma(Numeric& gamma_dSelf,
463  const Numeric& theta,
464  const Numeric& self_pressure) const;
465  void GetAirBroadening_dForeignGamma(Numeric& gamma_dForeign,
466  const Numeric& theta,
467  const Numeric& pressure,
468  const Numeric& self_pressure) const;
469  void GetAirBroadening_dForeignPsf(Numeric& psf_dForeign,
470  const Numeric& theta,
471  const Numeric& pressure) const;
472  void GetAirBroadening_dSelfExponent(Numeric& gamma_dSelfExponent,
473  Numeric& psf_dSelfExponent,
474  const Numeric& theta,
475  const Numeric& self_pressure) const;
476  void GetAirBroadening_dForeignExponent(Numeric& gamma_dForeignExponent,
477  Numeric& psf_dForeignExponent,
478  const Numeric& theta,
479  const Numeric& pressure,
480  const Numeric& self_pressure) const;
482  Numeric& split_dvmr,
483  const Numeric& theta,
484  const Numeric& pressure) const;
485 
497  void GetAirAndWaterBroadening(Numeric& gamma,
498  Numeric& deltaf,
499  const Numeric& theta,
500  const Numeric& pressure,
501  const Numeric& self_pressure,
502  const Index this_species,
503  const Index h2o_species,
504  ConstVectorView vmrs) const;
505  void GetAirAndWaterBroadening_dT(Numeric& dgamma_dT,
506  Numeric& ddeltaf_dT,
507  const Numeric& T,
508  const Numeric& T0,
509  const Numeric& pressure,
510  const Numeric& self_pressure,
511  const Index this_species,
512  const Index h2o_species,
513  ConstVectorView vmrs) const;
514  void GetAirAndWaterBroadening_dSelfGamma(Numeric& dgamma_dSelf,
515  const Numeric& theta,
516  const Numeric& self_pressure) const;
517  void GetAirAndWaterBroadening_dForeignGamma(Numeric& dgamma_dForeign,
518  const Numeric& theta,
519  const Numeric& pressure,
520  const Numeric& self_pressure,
521  const Index this_species,
522  const Index h2o_species,
523  ConstVectorView vmrs) const;
525  const Numeric& theta,
526  const Numeric& pressure,
527  const Index this_species,
528  const Index h2o_species,
529  ConstVectorView vmrs) const;
531  const Numeric& theta,
532  const Numeric& self_pressure) const;
533  void GetAirAndWaterBroadening_dForeignPsf(Numeric& dpsf_dForeign,
534  const Numeric& theta,
535  const Numeric& pressure,
536  const Numeric& self_pressure,
537  const Index this_species,
538  const Index h2o_species,
539  ConstVectorView vmrs) const;
541  const Numeric& theta,
542  const Numeric& pressure,
543  const Index this_species,
544  const Index h2o_species,
545  ConstVectorView vmrs) const;
546  void GetAirAndWaterBroadening_dSelfExponent(Numeric& dgamma_dSelfExponent,
547  Numeric& dpsf_dSelfExponent,
548  const Numeric& theta,
549  const Numeric& self_pressure) const;
550  void GetAirAndWaterBroadening_dForeignExponent(Numeric& dgamma_dForeignExponent,
551  Numeric& dpsf_dForeignExponent,
552  const Numeric& theta,
553  const Numeric& pressure,
554  const Numeric& self_pressure,
555  const Index this_species,
556  const Index h2o_species,
557  ConstVectorView vmrs) const;
558  void GetAirAndWaterBroadening_dWaterExponent(Numeric& gamma_dWaterExponent,
559  Numeric& psf_dWaterExponent,
560  const Numeric& theta,
561  const Numeric& pressure,
562  const Index this_species,
563  const Index h2o_species,
564  ConstVectorView vmrs) const;
565 
580  void GetPlanetaryBroadening(Numeric& gamma,
581  Numeric& deltaf,
582  const Numeric& theta,
583  const Numeric& pressure,
584  const Numeric& self_pressure,
585  const ArrayOfIndex& broad_spec_locations,
586  ConstVectorView vmrs) const;
587  void GetPlanetaryBroadening_dT(Numeric& dgamma_dT,
588  Numeric& ddeltaf_dT,
589  const Numeric& T,
590  const Numeric& T0,
591  const Numeric& pressure,
592  const Numeric& self_pressure,
593  const ArrayOfIndex& broad_spec_locations,
594  ConstVectorView vmrs) const;
595 
611  void GetPressureBroadeningParams(Numeric& gamma_0,
612  Numeric& gamma_2,
613  Numeric& eta,
614  Numeric& df_0,
615  Numeric& df_2,
616  Numeric& f_VC,
617  const Numeric& T,
618  const Numeric& T0,
619  const Numeric& pressure,
620  const Numeric& self_pressure,
621  const Index this_species,
622  const Index h2o_species,
623  const ArrayOfIndex& broad_spec_locations,
624  ConstVectorView vmrs) const;
625  void GetPressureBroadeningParams_dT(Numeric& dgamma_0_dT,
626  Numeric& dgamma_2_dT,
627  Numeric& deta_dT,
628  Numeric& ddf_0_dT,
629  Numeric& ddf_2_dT,
630  Numeric& df_VC_dT,
631  const Numeric& T,
632  const Numeric& T0,
633  const Numeric& pressure,
634  const Numeric& self_pressure,
635  const Index this_species,
636  const Index h2o_species,
637  const ArrayOfIndex& broad_spec_locations,
638  ConstVectorView vmrs) const;
640  const Numeric& theta,
641  const Numeric& self_pressure) const;
643  const Numeric& theta,
644  const Numeric& pressure,
645  const Numeric& self_pressure,
646  const Index this_species,
647  const Index h2o_species,
648  ConstVectorView vmrs) const;
650  const Numeric& theta,
651  const Numeric& pressure,
652  const Index this_species,
653  const Index h2o_species,
654  ConstVectorView vmrs) const;
656  const Numeric& theta,
657  const Numeric& self_pressure) const;
659  const Numeric& theta,
660  const Numeric& pressure,
661  const Numeric& self_pressure,
662  const Index this_species,
663  const Index h2o_species,
664  ConstVectorView vmrs) const;
666  const Numeric& theta,
667  const Numeric& pressure,
668  const Index this_species,
669  const Index h2o_species,
670  ConstVectorView vmrs) const;
671  void GetPressureBroadeningParams_dSelfExponent(Numeric& gamma_dSelfExponent,
672  Numeric& psf_dSelfExponent,
673  const Numeric& theta,
674  const Numeric& self_pressure) const;
675  void GetPressureBroadeningParams_dForeignExponent(Numeric& gamma_dForeignExponent,
676  Numeric& psf_dForeignExponent,
677  const Numeric& theta,
678  const Numeric& pressure,
679  const Numeric& self_pressure,
680  const Index this_species,
681  const Index h2o_species,
682  ConstVectorView vmrs) const;
683  void GetPressureBroadeningParams_dWaterExponent(Numeric& gamma_dWaterExponent,
684  Numeric& psf_dWaterExponent,
685  const Numeric& theta,
686  const Numeric& pressure,
687  const Index this_species,
688  const Index h2o_species,
689  ConstVectorView vmrs) const;
690 
705  void GetSDAirBroadening(Numeric& gamma0,
706  Numeric& gamma2,
707  Numeric& delta0,
708  Numeric& delta2,
709  const Numeric& theta,
710  const Numeric& pressure) const;
711  void GetSDAirBroadening_dT(Numeric& dgamma0,
712  Numeric& dgamma2,
713  Numeric& ddelta0,
714  Numeric& ddelta2,
715  const Numeric& T,
716  const Numeric& T0,
717  const Numeric& pressure) const;
718 
735  void GetHTPAirBroadening(Numeric& gamma0,
736  Numeric& gamma2,
737  Numeric& delta0,
738  Numeric& delta2,
739  Numeric& fvc,
740  Numeric& eta,
741  const Numeric& theta,
742  const Numeric& pressure) const;
743  void GetHTPAirBroadening_dT(Numeric& dgamma0,
744  Numeric& dgamma2,
745  Numeric& ddelta0,
746  Numeric& ddelta2,
747  Numeric& dfvc,
748  Numeric& deta,
749  const Numeric& T,
750  const Numeric& T0,
751  const Numeric& pressure) const;
752 
753  // Sets the pressure broadening PB_type from String input
754  void StorageTag2SetType(const String& input);
755 
756  // Sets the pressure broadening PB_type from String input
757  void SetTypeFromIndex(const Index& type) {mtype = PB_Type(type);};
758 
759  // Returns length of the vector that is supposed to be input
761 
762  // Sets the data of the class from vector input
764 
765  // Gets the vector from the data of the class
766  void GetVectorFromData(Vector& output) const;
767 
768  // Returns the String tag for this PB_type
769  String Type2StorageTag() const;
770 
771 private:
772  // mtype identifies the type of of pressure broadening and the other variables
773  // are containers
777 };
778 
779 #endif //pressurebroadeningdata_h
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
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&#39;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
A class implementing complex numbers for ARTS.
void GetVectorFromData(Vector &output) const
Index nelem() const
Number of elements.
Definition: array.h:195
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.
Declarations having to do with the four output streams.
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
Routines for setting up the jacobian.
Numeric PlanetaryGammaForeign(Index ii) const
The Vector class.
Definition: matpackI.h:860
void GetPressureBroadeningParams_dWaterPsf(Numeric &psf_dWater, const Numeric &theta, const Numeric &pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
void GetSDAirBroadening_dT(Numeric &dgamma0, Numeric &dgamma2, Numeric &ddelta0, Numeric &ddelta2, const Numeric &T, const Numeric &T0, const Numeric &pressure) const
void SetTypeFromIndex(const Index &type)
void GetPressureBroadeningParams_dSelfGamma(Numeric &gamma_dSelf, const Numeric &theta, const Numeric &self_pressure) const
ConstVectorView PlanetaryDeltaForeign() 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...
This class should contain the data and metadata associated with pressure broadening.
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
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.
This file contains the definition of Array.
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.
void GetAirAndWaterBroadening_dSelfExponent(Numeric &dgamma_dSelfExponent, Numeric &dpsf_dSelfExponent, const Numeric &theta, const Numeric &self_pressure) const
const ArrayOfVector & DataError() 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 *.
Numeric PlanetaryNForeign(Index ii) const
ConstVectorView PlanetaryGammaForeign() const
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
const ArrayOfVector & Data() 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.
Definition: quantum.h:390
void GetAirAndWaterBroadening_dWaterGamma(Numeric &gamma_dWater, const Numeric &theta, const Numeric &pressure, const Index this_species, const Index h2o_species, ConstVectorView vmrs) const
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
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
Implementation of Matrix, Vector, and such stuff.
The ComplexVector class.
Definition: complex.h:573
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 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 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 ...
Numeric PlanetaryDeltaForeign(Index ii) const
ConstVectorView PlanetaryNForeign() const
A constant view of a Vector.
Definition: matpackI.h:476
Index nelem(const Lines &l)
Number of lines.
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
void StorageTag2SetType(const String &input)
const PB_Type & Type() const
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 ...