123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
-
-
-
-
-
-
- #ifndef __LAYEREDEARTHEM_H
- #define __LAYEREDEARTHEM_H
-
- #include "LayeredEarth.h"
-
- namespace Lemma {
-
-
-
-
-
-
-
-
-
-
- class LayeredEarthEM : public LayeredEarth {
-
-
-
- friend std::ostream &operator<<(std::ostream &stream, const LayeredEarthEM &ob);
-
- struct ctor_key {};
-
- public:
-
-
-
-
- explicit LayeredEarthEM ( const ctor_key& );
-
-
- LayeredEarthEM ( const YAML::Node& node, const ctor_key& );
-
-
- virtual ~LayeredEarthEM ();
-
-
-
- static std::shared_ptr<LayeredEarthEM> NewSP();
-
-
-
- YAML::Node Serialize() const;
-
-
-
- static std::shared_ptr< LayeredEarthEM > DeSerialize(const YAML::Node& node);
-
-
-
- std::shared_ptr<LayeredEarthEM> Clone();
-
-
-
-
-
-
-
- void EvaluateColeColeModel(const Real& omega);
-
-
-
-
-
- virtual void SetNumberOfLayers(const int& nlay);
-
-
-
- void SetLayerConductivity(const VectorXcr &sigma);
-
-
-
- void SetLayerConductivity(const int& ilay, const Complex &sigma);
-
-
-
-
-
-
-
- void SetLayerThickness(const VectorXr &thick);
-
-
-
- void SetLayerHighFreqSusceptibility(const VectorXr& sushi);
-
-
-
- void SetLayerLowFreqSusceptibility(const VectorXr& sushi);
-
-
-
- void SetLayerBreathSusceptibility(const VectorXr& susbr);
-
-
-
- void SetLayerTauSusceptibility(const VectorXr& susta);
-
-
-
- void SetLayerHighFreqPermitivity(const VectorXr& sushi);
-
-
-
- void SetLayerLowFreqPermitivity(const VectorXr& sushi);
-
-
-
- void SetLayerBreathPermitivity(const VectorXr& oerbr);
-
-
-
- void SetLayerTauPermitivity(const VectorXr& oerbr);
-
-
-
-
-
- VectorXcr GetLayerConductivity( );
-
-
-
- Complex GetLayerConductivity(const int &ilay);
-
-
-
- Complex GetLayerSusceptibility(const int &ilay);
-
-
-
- VectorXcr GetLayerSusceptibility( );
-
-
-
- Real GetLayerLowFreqSusceptibility(const int &ilay);
-
-
-
- VectorXr GetLayerLowFreqSusceptibility( );
-
-
-
- Real GetLayerHighFreqSusceptibility(const int &ilay);
-
-
-
- VectorXr GetLayerHighFreqSusceptibility( );
-
-
-
- Real GetLayerTauSusceptibility(const int &ilay);
-
-
-
- VectorXr GetLayerTauSusceptibility( );
-
-
-
- Real GetLayerBreathSusceptibility(const int &ilay);
-
-
-
- VectorXr GetLayerBreathSusceptibility( );
-
-
-
- VectorXcr GetLayerPermitivity( );
-
-
-
- Complex GetLayerPermitivity(const int &ilay);
-
-
-
- VectorXr GetLayerLowFreqPermitivity( );
-
-
-
- Real GetLayerLowFreqPermitivity(const int &ilay);
-
-
-
- Real GetLayerHighFreqPermitivity(const int &ilay);
-
-
-
- VectorXr GetLayerHighFreqPermitivity( );
-
-
-
- Real GetLayerTauPermitivity(const int &ilay);
-
-
-
- VectorXr GetLayerTauPermitivity( );
-
-
-
- Real GetLayerBreathPermitivity(const int &ilay);
-
-
-
- VectorXr GetLayerBreathPermitivity( );
-
-
- virtual inline std::string GetName() const {
- return CName;
- }
-
- protected:
-
-
- private:
-
-
-
- VectorXcr LayerConductivity;
-
-
-
- VectorXcr LayerSusceptibility;
-
-
-
- VectorXr LayerLowFreqSusceptibility;
-
-
-
- VectorXr LayerHighFreqSusceptibility;
-
-
-
- VectorXr LayerTauSusceptibility;
-
-
-
- VectorXr LayerBreathSusceptibility;
-
-
-
- VectorXcr LayerPermitivity;
-
-
- VectorXr LayerLowFreqPermitivity;
-
-
- VectorXr LayerHighFreqPermitivity;
-
-
- VectorXr LayerTauPermitivity;
-
-
- VectorXr LayerBreathPermitivity;
-
-
- static constexpr auto CName = "LayeredEarthEM";
-
- };
-
-
- }
-
- #endif
-
-
|