Settings.h 2.22 KB
Newer Older
Philipp Schäfer's avatar
Philipp Schäfer committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
* ----------------------------------------------------------------
*
*		ITA geometrical acoustics
*		(c) Copyright Institute of Technical Acoustics (ITA)
*		RWTH Aachen University, Germany, 2015-2019
*
* ----------------------------------------------------------------
* 				    ____  __________  _______
*				   //  / //__   ___/ //  _   |
*				  //  /    //  /    //  /_|  |
*				 //  /    //  /    //  ___   |
*				//__/    //__/    //__/   |__|
*
* ----------------------------------------------------------------
*
*/

Philipp Schäfer's avatar
Philipp Schäfer committed
19
20
#ifndef IW_ITA_PROPAGATIONPATHSIM_ART_EIGENRAYSEARCH_SETTINGS
#define IW_ITA_PROPAGATIONPATHSIM_ART_EIGENRAYSEARCH_SETTINGS
Philipp Schäfer's avatar
Philipp Schäfer committed
21
22
23
24
25
26
27
28

#include <ITAPropagationPathSim/Definitions.h>


namespace ITAPropagationPathSim
{
	namespace AtmosphericRayTracing
	{
Philipp Schäfer's avatar
Philipp Schäfer committed
29
30
31
		namespace EigenraySearch {
			struct ITA_PROPAGATION_PATH_SIM_API RayAdaptationSettings {
				struct {
Philipp Schäfer's avatar
Philipp Schäfer committed
32
33
					int maxNAdaptations = 15;				//!< Abort after N adaptations of the ray resolution
					double minAngleResolutionDeg = 0.001;	//!< Abort if angle between neighboring rays is below this value []
Philipp Schäfer's avatar
Philipp Schäfer committed
34
35
36
				} abort;

				struct {
Philipp Schäfer's avatar
Philipp Schäfer committed
37
38
39
					double maxReceiverRadius = 1;			//!< Maximum radius of receiver sphere [m]
					double maxSourceReceiverAngle = 1;		//!< Maximum angle between vectors from source to receiver point and receiver sphere []
					double maxAngleForGeomSpreading = 0.01; //!< Angular resolution of rays which is required to calculate spreading loss []
Philipp Schäfer's avatar
Philipp Schäfer committed
40
41
42
				} accuracy;

				struct {
Philipp Schäfer's avatar
Philipp Schäfer committed
43
44
					bool bActive = true;	//!< Switch to enable/disable advanced ray zooming
					double threshold = 0.1; //!< Threshold between 0 and 2 above which advanced ray zooming is performed (0 = always, 2 = never)
Philipp Schäfer's avatar
Philipp Schäfer committed
45
				} advancedRayZooming;
Philipp Schäfer's avatar
Philipp Schäfer committed
46
			};
Philipp Schäfer's avatar
Philipp Schäfer committed
47
			struct ITA_PROPAGATION_PATH_SIM_API RayTracingAbortSettings {
Philipp Schäfer's avatar
Philipp Schäfer committed
48
49
50
				int maxReflectionOrder = 1;					//!< Maximum considered order of reflections
				double maxTime = 30;						//!< Maximum propagation time of rays [s]
				bool bAbortOnReceiverDistIncrease = true;	//!< If enabled, ray tracing will be aborted as soon as ray receiver distance increases
Philipp Schäfer's avatar
Philipp Schäfer committed
51
			};
Philipp Schäfer's avatar
Philipp Schäfer committed
52
53
54
			struct ITA_PROPAGATION_PATH_SIM_API Settings {
				RayTracingAbortSettings rayTracing;
				RayAdaptationSettings rayAdaptation;
Philipp Schäfer's avatar
Philipp Schäfer committed
55
56
57
58
59
			};
		}
	}
}

Philipp Schäfer's avatar
Philipp Schäfer committed
60
#endif //IW_ITA_PROPAGATIONPATHSIM_ART_EIGENRAYSEARCH_SETTINGS