diff options
author | Ruben Undheim <ruben.undheim@gmail.com> | 2016-07-05 18:02:38 +0200 |
---|---|---|
committer | Ruben Undheim <ruben.undheim@gmail.com> | 2016-07-05 18:02:38 +0200 |
commit | ef962f6008f25ab7cbd4ca21bcc72b97a1e2d76f (patch) | |
tree | 8149bee93d1a3f91d4503bfb3853adac4af0a85e /CSXCAD/src/CSPropProbeBox.h |
Imported Upstream version 0.0.34
Diffstat (limited to 'CSXCAD/src/CSPropProbeBox.h')
-rw-r--r-- | CSXCAD/src/CSPropProbeBox.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/CSXCAD/src/CSPropProbeBox.h b/CSXCAD/src/CSPropProbeBox.h new file mode 100644 index 0000000..a8997d7 --- /dev/null +++ b/CSXCAD/src/CSPropProbeBox.h @@ -0,0 +1,86 @@ +/* +* Copyright (C) 2008-2012 Thorsten Liebig (Thorsten.Liebig@gmx.de) +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License as published +* by the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "CSProperties.h" + + +//! Continuous Structure Probe Property for calculating integral properties +/*! + CSProbProbeBox is a class for calculating integral properties such as (static) charges, voltages or currents. +*/ +class CSXCAD_EXPORT CSPropProbeBox : public CSProperties +{ +public: + CSPropProbeBox(ParameterSet* paraSet); + CSPropProbeBox(CSProperties* prop); + CSPropProbeBox(unsigned int ID, ParameterSet* paraSet); + virtual ~CSPropProbeBox(); + + //! Get PropertyType as a xml element name \sa PropertyType and GetType + virtual const std::string GetTypeXMLString() const {return std::string("ProbeBox");} + + //! Define a number for this probe property \sa GetNumber + void SetNumber(unsigned int val); + //! Get the number designated to this probe property \sa SetNumber + unsigned int GetNumber(); + + //! Get the normal direction of this probe box (required by some types of probes) + int GetNormalDir() const {return m_NormDir;} + //! Set the normal direction of this probe box (required by some types of probes) + void SetNormalDir(unsigned int ndir) {m_NormDir=ndir;} + + //! Define/Set the probe weighting \sa GetWeighting + void SetWeighting(double weight) {m_weight=weight;} + //! Get the probe weighting \sa GetWeighting + double GetWeighting() {return m_weight;} + + //! Define the probe type (e.g. type=0 for a charge integration, can/must be defined by the user interface) \sa GetProbeType + void SetProbeType(int type) {ProbeType=type;} + //! Get the probe type \sa SetProbeType + int GetProbeType() {return ProbeType;} + + //! Set the probe start time + void SetStartTime(float value) {startTime=value;} + //! Get the probe start time + double GetStartTime() {return startTime;} + + //! Set the probe stop time + void SetStopTime(float value) {stopTime=value;} + //! Get the probe stop time + double GetStopTime() {return stopTime;} + + size_t CountFDSamples() {return m_FD_Samples.size();} + std::vector<double> *GetFDSamples() {return &m_FD_Samples;} + void ClearFDSamples() {m_FD_Samples.clear();} + void AddFDSample(double freq) {m_FD_Samples.push_back(freq);} + void AddFDSample(std::vector<double> *freqs); + void AddFDSample(std::string freqs); + + virtual bool Write2XML(TiXmlNode& root, bool parameterised=true, bool sparse=false); + virtual bool ReadFromXML(TiXmlNode &root); + +protected: + unsigned int uiNumber; + int m_NormDir; + double m_weight; + int ProbeType; + std::vector<double> m_FD_Samples; + double startTime, stopTime; +}; + |