├── .gitignore ├── CHANGELOG.rst ├── CMakeLists.txt ├── CONTRIBUTORS.txt ├── LICENSE.txt ├── README.md ├── clean_build.sh ├── config.sh ├── docker ├── omp │ └── omp.dockerfile └── oneapi │ └── oneapi.dockerfile ├── docs ├── README.md └── manual │ ├── AdvancedRunningOptions.md │ ├── BuildingAndRunning.md │ ├── Docker.md │ ├── ResultsDirectories.md │ └── Tools.md ├── include └── stbx │ ├── agents │ ├── Agents.h │ ├── README.md │ ├── concrete │ │ ├── DynamicServerAgent.hpp │ │ ├── DynamicServerlessAgent.hpp │ │ ├── NormalAgent.hpp │ │ ├── StaticServerAgent.hpp │ │ └── StaticServerlessAgent.hpp │ └── interface │ │ └── Agent.hpp │ ├── generators │ ├── Generator.hpp │ ├── common │ │ └── Keys.hpp │ ├── concrete │ │ └── computation-parameters │ │ │ └── computation_parameters_generator.h │ └── primitive │ │ ├── CallbacksGenerator.hpp │ │ ├── ComponentsGenerator.hpp │ │ ├── ComputationParametersGetter.hpp │ │ └── ConfigurationsGenerator.hpp │ ├── parsers │ ├── ArgumentsParser.hpp │ └── Parser.hpp │ └── writers │ ├── README.md │ ├── Writers.h │ ├── concrete │ └── NormalWriter.hpp │ └── interface │ └── Writer.hpp ├── libs ├── BSBase │ ├── .gitignore │ ├── .gitlab-ci.yml │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── README.md │ ├── TODO.md │ ├── clean_build.sh │ ├── config.sh │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── exceptions │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ └── logger │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ ├── include │ │ └── bs │ │ │ └── base │ │ │ ├── api │ │ │ ├── c │ │ │ │ └── base.h │ │ │ └── cpp │ │ │ │ └── BSBase.hpp │ │ │ ├── backend │ │ │ ├── Backend.hpp │ │ │ └── Technology.hpp │ │ │ ├── common │ │ │ ├── Common.hpp │ │ │ ├── Definitions.hpp │ │ │ ├── ExitCodes.hpp │ │ │ ├── Singleton.tpp │ │ │ └── assertions.h │ │ │ ├── configurations │ │ │ ├── Configurations.hpp │ │ │ ├── concrete │ │ │ │ └── JSONConfigurationMap.hpp │ │ │ └── interface │ │ │ │ ├── Configurable.hpp │ │ │ │ └── ConfigurationMap.hpp │ │ │ ├── exceptions │ │ │ ├── Exceptions.hpp │ │ │ ├── concrete │ │ │ │ ├── AxisException.hpp │ │ │ │ ├── DeviceNoSpaceException.hpp │ │ │ │ ├── DeviceNotFoundException.hpp │ │ │ │ ├── DirectionException.hpp │ │ │ │ ├── FileNotFoundException.hpp │ │ │ │ ├── IllogicalException.hpp │ │ │ │ ├── IndexOutOfBoundsException.hpp │ │ │ │ ├── InvalidKeyValueException.hpp │ │ │ │ ├── NoKeyFoundException.hpp │ │ │ │ ├── NotImplementedException.hpp │ │ │ │ ├── NullPointerException.hpp │ │ │ │ ├── UndefinedException.hpp │ │ │ │ └── UnsupportedFeatureException.hpp │ │ │ └── interface │ │ │ │ └── BaseException.hpp │ │ │ ├── logger │ │ │ ├── Logger.hpp │ │ │ ├── README.md │ │ │ ├── concrete │ │ │ │ ├── ConsoleLogger.hpp │ │ │ │ ├── FileLogger.hpp │ │ │ │ ├── GeneralLogger.hpp │ │ │ │ ├── LoggerChannel.hpp │ │ │ │ ├── LoggerCollection.hpp │ │ │ │ └── LoggerSystem.hpp │ │ │ └── interface │ │ │ │ └── Logger.hpp │ │ │ └── memory │ │ │ ├── MemoryManager.hpp │ │ │ ├── data-units │ │ │ ├── mem_list.h │ │ │ └── string_list.h │ │ │ ├── managers │ │ │ ├── memory_allocator.h │ │ │ └── memory_tracker.h │ │ │ └── utils │ │ │ ├── logger.h │ │ │ └── mem_utils.h │ ├── prerequisites │ │ ├── README.md │ │ └── libraries │ │ │ ├── catch │ │ │ └── catch.hpp │ │ │ └── nlohmann │ │ │ └── json.hpp │ ├── src │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── backend │ │ │ ├── CMakeLists.txt │ │ │ ├── omp-offload │ │ │ │ ├── Backend.cpp │ │ │ │ └── CMakeLists.txt │ │ │ ├── omp │ │ │ │ ├── Backend.cpp │ │ │ │ └── CMakeLists.txt │ │ │ └── oneapi │ │ │ │ ├── Backend.cpp │ │ │ │ └── CMakeLists.txt │ │ ├── configurations │ │ │ ├── CMakeLists.txt │ │ │ └── concrete │ │ │ │ └── JSONConfigurationMap.cpp │ │ ├── logger │ │ │ ├── CMakeLists.txt │ │ │ └── concrete │ │ │ │ ├── ConsoleLogger.cpp │ │ │ │ ├── FileLogger.cpp │ │ │ │ ├── LoggerChannel.cpp │ │ │ │ ├── LoggerCollection.cpp │ │ │ │ └── LoggerSystem.cpp │ │ └── memory │ │ │ ├── CMakeLists.txt │ │ │ ├── data-units │ │ │ ├── mem_list.cpp │ │ │ └── string_list.cpp │ │ │ ├── managers │ │ │ ├── memory_allocator.cpp │ │ │ └── memory_tracker.cpp │ │ │ └── utils │ │ │ ├── logger.cpp │ │ │ └── mem_utils.cpp │ └── tests │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── backend │ │ ├── CMakeLists.txt │ │ └── oneapi │ │ │ ├── CMakeLists.txt │ │ │ └── TestOneAPIBackend.cpp │ │ ├── configurations │ │ ├── CMakeLists.txt │ │ └── concrete │ │ │ └── TestJSONConfigurationMap.cpp │ │ └── test_main.cpp ├── BSIO │ ├── .gitignore │ ├── .gitlab-ci.yml │ ├── .gitmodules │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── README.md │ ├── TODO.md │ ├── clean_build.sh │ ├── config.sh │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── indexer │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ ├── segy-indexing │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ ├── segy-to-image │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ └── segy │ │ │ ├── CMakeLists.txt │ │ │ ├── reader │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ │ └── writer │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ ├── include │ │ └── bs │ │ │ └── io │ │ │ ├── api │ │ │ └── cpp │ │ │ │ └── BSIO.hpp │ │ │ ├── common │ │ │ └── Definitions.hpp │ │ │ ├── configurations │ │ │ └── MapKeys.h │ │ │ ├── data-units │ │ │ ├── concrete │ │ │ │ ├── Gather.hpp │ │ │ │ └── Trace.hpp │ │ │ ├── data-types │ │ │ │ └── TraceHeaderKey.hpp │ │ │ └── helpers │ │ │ │ └── TraceHelper.hpp │ │ │ ├── indexers │ │ │ ├── FileIndexer.hpp │ │ │ └── IndexMap.hpp │ │ │ ├── lookups │ │ │ ├── SeismicFilesHeaders.hpp │ │ │ ├── mappers │ │ │ │ ├── HeaderMapper.hpp │ │ │ │ ├── PSGHeaderMapper.hpp │ │ │ │ └── SegyHeaderMapper.hpp │ │ │ └── tables │ │ │ │ ├── BinaryHeaderLookup.hpp │ │ │ │ ├── TextHeaderLookup.hpp │ │ │ │ └── TraceHeaderLookup.hpp │ │ │ ├── streams │ │ │ ├── concrete │ │ │ │ ├── readers │ │ │ │ │ ├── JsonReader.hpp │ │ │ │ │ ├── SUReader.hpp │ │ │ │ │ ├── SegyReader.hpp │ │ │ │ │ └── SeismicReader.hpp │ │ │ │ └── writers │ │ │ │ │ ├── BinaryWriter.hpp │ │ │ │ │ ├── CSVWriter.hpp │ │ │ │ │ ├── ImageWriter.hpp │ │ │ │ │ ├── SUWriter.hpp │ │ │ │ │ ├── SegyWriter.hpp │ │ │ │ │ └── SeismicWriter.hpp │ │ │ ├── helpers │ │ │ │ ├── InStreamHelper.hpp │ │ │ │ └── OutStreamHelper.hpp │ │ │ ├── interface │ │ │ │ └── Stream.hpp │ │ │ └── primitive │ │ │ │ ├── Reader.hpp │ │ │ │ └── Writer.hpp │ │ │ └── utils │ │ │ ├── checkers │ │ │ └── Checker.hpp │ │ │ ├── convertors │ │ │ ├── FloatingPointFormatter.hpp │ │ │ ├── KeysConvertor.hpp │ │ │ ├── NumbersConvertor.hpp │ │ │ └── StringsConvertor.hpp │ │ │ ├── displayers │ │ │ └── Displayer.hpp │ │ │ ├── range │ │ │ └── EntryRange.hpp │ │ │ ├── synthetic-generators │ │ │ ├── concrete │ │ │ │ ├── ParameterMetaDataGenerator.hpp │ │ │ │ ├── PlaneReflectorGenerator.hpp │ │ │ │ └── ShotsMetaDataGenerator.hpp │ │ │ └── interface │ │ │ │ ├── MetaDataGenerator.hpp │ │ │ │ └── ReflectorDataGenerator.hpp │ │ │ └── timer │ │ │ └── ExecutionTimer.hpp │ ├── mains │ │ ├── CMakeLists.txt │ │ ├── Converter │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ ├── ReaderMetrics │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ └── Sorter │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ ├── prerequisites │ │ ├── README.md │ │ └── libraries │ │ │ ├── catch │ │ │ └── catch.hpp │ │ │ └── nlohmann │ │ │ └── json.hpp │ ├── src │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── data-units │ │ │ ├── CMakeLists.txt │ │ │ ├── concrete │ │ │ │ ├── Gather.cpp │ │ │ │ └── Trace.cpp │ │ │ └── helpers │ │ │ │ └── TraceHelper.cpp │ │ ├── indexers │ │ │ ├── CMakeLists.txt │ │ │ ├── FileIndexer.cpp │ │ │ └── IndexMap.cpp │ │ ├── lookups │ │ │ ├── CMakeLists.txt │ │ │ ├── SeismicFilesHeaders.cpp │ │ │ └── mappers │ │ │ │ ├── HeaderMapper.cpp │ │ │ │ └── SegyHeaderMapper.cpp │ │ ├── streams │ │ │ ├── CMakeLists.txt │ │ │ ├── concrete │ │ │ │ ├── readers │ │ │ │ │ ├── JsonReader.cpp │ │ │ │ │ ├── SUReader.cpp │ │ │ │ │ ├── SegyReader.cpp │ │ │ │ │ └── SeismicReader.cpp │ │ │ │ └── writers │ │ │ │ │ ├── BinaryWriter.cpp │ │ │ │ │ ├── CSVWriter.cpp │ │ │ │ │ ├── ImageWriter.cpp │ │ │ │ │ ├── SUWriter.cpp │ │ │ │ │ ├── SegyWriter.cpp │ │ │ │ │ └── SeismicWriter.cpp │ │ │ └── helpers │ │ │ │ ├── InStreamHelper.cpp │ │ │ │ └── OutStreamHelper.cpp │ │ └── utils │ │ │ ├── CMakeLists.txt │ │ │ ├── checkers │ │ │ └── Checker.cpp │ │ │ ├── convertors │ │ │ ├── FloatingPointFormatter.cpp │ │ │ ├── KeysConvertor.cpp │ │ │ ├── NumbersConvertor.cpp │ │ │ └── StringsConvertor.cpp │ │ │ ├── displayers │ │ │ └── Displayers.cpp │ │ │ └── synthetic-generators │ │ │ └── concrete │ │ │ ├── ParameterMetaDataGenerator.cpp │ │ │ ├── PlaneReflectorGenerator.cpp │ │ │ └── ShotsMetaDataGenerator.cpp │ ├── tests │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── data-units │ │ │ ├── CMakeLists.txt │ │ │ ├── concrete │ │ │ │ ├── TestGather.cpp │ │ │ │ └── TestTrace.cpp │ │ │ ├── data-types │ │ │ │ └── TestTraceHeader.cpp │ │ │ └── helpers │ │ │ │ └── TestTraceHelper.cpp │ │ ├── streams │ │ │ ├── CMakeLists.txt │ │ │ └── concrete │ │ │ │ ├── TestJson.cpp │ │ │ │ ├── TestSU.cpp │ │ │ │ ├── TestSegy.cpp │ │ │ │ └── TestSeismic.cpp │ │ ├── test-files │ │ │ └── synthetic_velocity.json │ │ ├── test-utils │ │ │ ├── CMakeLists.txt │ │ │ ├── include │ │ │ │ └── bs │ │ │ │ │ └── io │ │ │ │ │ └── test-utils │ │ │ │ │ └── DataGenerator.hpp │ │ │ └── src │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── DataGenerator.cpp │ │ ├── test_main.cpp │ │ └── utils │ │ │ ├── CMakeLists.txt │ │ │ ├── checkers │ │ │ └── TestChecker.cpp │ │ │ └── convertors │ │ │ ├── TestFloatingPointFormatter.cpp │ │ │ ├── TestKeysConvertor.cpp │ │ │ ├── TestNumbersConvertor.cpp │ │ │ └── TestStringsConvertor.cpp │ └── workloads │ │ ├── .gitkeep │ │ ├── input_configuration.json │ │ └── output_configuration.json ├── BSTimer │ ├── .gitignore │ ├── .gitlab-ci.yml │ ├── .gitmodules │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── README.md │ ├── TODO.md │ ├── clean_build.sh │ ├── config.sh │ ├── docs │ │ ├── hld │ │ │ └── HighLevelDesign.md │ │ └── manual │ │ │ └── UserManual.md │ ├── examples │ │ ├── CMakeLists.txt │ │ └── end-to-end │ │ │ ├── omp │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ │ └── serial │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ ├── include │ │ └── bs │ │ │ └── timer │ │ │ ├── api │ │ │ └── cpp │ │ │ │ └── BSTimer.hpp │ │ │ ├── common │ │ │ └── Definitions.hpp │ │ │ ├── configurations │ │ │ ├── TimerChannel.hpp │ │ │ └── TimerManager.hpp │ │ │ ├── core │ │ │ ├── snapshots │ │ │ │ ├── helpers │ │ │ │ │ └── GenericSnapshot.hpp │ │ │ │ └── interface │ │ │ │ │ └── Snapshot.hpp │ │ │ └── timers │ │ │ │ ├── concrete │ │ │ │ ├── ElasticTimer.hpp │ │ │ │ ├── LazyTimer.hpp │ │ │ │ └── ScopeTimer.hpp │ │ │ │ └── interface │ │ │ │ └── Timer.hpp │ │ │ ├── data-units │ │ │ └── ChannelStats.hpp │ │ │ ├── reporter │ │ │ └── TimerReporter.hpp │ │ │ └── utils │ │ │ └── stats │ │ │ └── StatisticsHelper.hpp │ ├── python │ │ ├── bs │ │ │ ├── __init__.py │ │ │ └── timer │ │ │ │ ├── __init__.py │ │ │ │ └── plotter │ │ │ │ ├── __init__.py │ │ │ │ ├── loader.py │ │ │ │ ├── parser.py │ │ │ │ └── plotter.py │ │ ├── main.py │ │ ├── pytest.ini │ │ ├── requirements.txt │ │ ├── requirements_piepline.txt │ │ ├── setup_enviroment.sh │ │ └── tests │ │ │ ├── __init__.py │ │ │ └── plotter │ │ │ ├── __init__.py │ │ │ └── test_plotter.py │ ├── src │ │ ├── CMakeLists.txt │ │ ├── configurations │ │ │ ├── CMakeLists.txt │ │ │ ├── TimerChannel.cpp │ │ │ └── TimerManager.cpp │ │ ├── core │ │ │ ├── CMakeLists.txt │ │ │ ├── snapshots │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── concrete │ │ │ │ │ ├── omp │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── OmpSnapshot.cpp │ │ │ │ │ │ └── OmpSnapshot.hpp │ │ │ │ │ └── serial │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── SerialSnapshot.cpp │ │ │ │ │ │ └── SerialSnapshot.hpp │ │ │ │ └── helpers │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── GenericSnapshot.cpp │ │ │ └── timers │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── ElasticTimer.cpp │ │ │ │ └── ScopeTimer.cpp │ │ ├── data-units │ │ │ ├── CMakeLists.txt │ │ │ └── ChannelStats.cpp │ │ └── reporter │ │ │ ├── CMakeLists.txt │ │ │ └── TimerReporter.cpp │ └── tests │ │ ├── CMakeLists.txt │ │ ├── configurations │ │ ├── CMakeLists.txt │ │ ├── TestChannel.cpp │ │ └── TestManager.cpp │ │ ├── core │ │ ├── CMakeLists.txt │ │ ├── TestLazyTimer.cpp │ │ └── TestTimer.cpp │ │ ├── reporter │ │ ├── CMakeLists.txt │ │ └── TestReporter.cpp │ │ ├── test-utils │ │ ├── CMakeLists.txt │ │ ├── include │ │ │ └── bs │ │ │ │ └── timer │ │ │ │ └── test-utils │ │ │ │ └── FunctionsGenerator.hpp │ │ └── src │ │ │ ├── CMakeLists.txt │ │ │ ├── FunctionsGenerator.cpp │ │ │ └── concrete │ │ │ ├── omp │ │ │ ├── CMakeLists.txt │ │ │ ├── OmpFunctionsGenerator.cpp │ │ │ └── OmpFunctionsGenerator.hpp │ │ │ └── serial │ │ │ ├── CMakeLists.txt │ │ │ ├── SerialFunctionsGenerator.cpp │ │ │ └── SerialFunctionsGenerator.hpp │ │ ├── test_main.cpp │ │ └── utils │ │ ├── CMakeLists.txt │ │ └── TestStatisticsHelper.cpp └── SeismicOperations │ ├── .gitignore │ ├── .gitlab-ci.yml │ ├── .gitmodules │ ├── CMakeLists.txt │ ├── CONTRIBUTORS.txt │ ├── LICENSE.txt │ ├── README.md │ ├── clean_build.sh │ ├── config.sh │ ├── docs │ ├── README.md │ ├── manual │ │ └── Features.md │ └── references │ │ └── .gitkeep │ ├── examples │ ├── CMakeLists.txt │ └── migration │ │ ├── CMakeLists.txt │ │ └── main.cpp │ ├── include │ └── operations │ │ ├── common │ │ ├── ComputationParameters.hpp │ │ ├── DataTypes.h │ │ └── Singleton.tpp │ │ ├── components │ │ ├── Components.hpp │ │ ├── dependency │ │ │ ├── concrete │ │ │ │ ├── HasDependents.hpp │ │ │ │ └── HasNoDependents.hpp │ │ │ ├── helpers │ │ │ │ └── ComponentsMap.tpp │ │ │ └── interface │ │ │ │ └── Dependency.hpp │ │ ├── dependents │ │ │ ├── concrete │ │ │ │ └── memory-handlers │ │ │ │ │ └── WaveFieldsMemoryHandler.hpp │ │ │ ├── interface │ │ │ │ └── DependentComponent.hpp │ │ │ └── primitive │ │ │ │ └── MemoryHandler.hpp │ │ └── independents │ │ │ ├── concrete │ │ │ ├── boundary-managers │ │ │ │ ├── CPMLBoundaryManager.hpp │ │ │ │ ├── NoBoundaryManager.hpp │ │ │ │ ├── README.md │ │ │ │ ├── RandomBoundaryManager.hpp │ │ │ │ ├── SpongeBoundaryManager.hpp │ │ │ │ ├── StaggeredCPMLBoundaryManager.hpp │ │ │ │ └── extensions │ │ │ │ │ ├── Extension.hpp │ │ │ │ │ ├── HomogenousExtension.hpp │ │ │ │ │ ├── MinExtension.hpp │ │ │ │ │ ├── RandomExtension.hpp │ │ │ │ │ └── ZeroExtension.hpp │ │ │ ├── computation-kernels │ │ │ │ ├── BaseComputationHelpers.hpp │ │ │ │ ├── README.md │ │ │ │ └── isotropic │ │ │ │ │ ├── SecondOrderComputationKernel.hpp │ │ │ │ │ └── StaggeredComputationKernel.hpp │ │ │ ├── forward-collectors │ │ │ │ ├── README.md │ │ │ │ ├── ReversePropagation.hpp │ │ │ │ ├── TwoPropagation.hpp │ │ │ │ ├── boundary-saver │ │ │ │ │ └── BoundarySaver.h │ │ │ │ └── file-handler │ │ │ │ │ └── file_handler.h │ │ │ ├── migration-accommodators │ │ │ │ ├── CrossCorrelationKernel.hpp │ │ │ │ └── README.md │ │ │ ├── model-handlers │ │ │ │ ├── README.md │ │ │ │ └── SeismicModelHandler.hpp │ │ │ ├── source-injectors │ │ │ │ ├── README.md │ │ │ │ └── RickerSourceInjector.hpp │ │ │ ├── trace-managers │ │ │ │ ├── README.md │ │ │ │ └── SeismicTraceManager.hpp │ │ │ └── trace-writers │ │ │ │ └── SeismicTraceWriter.hpp │ │ │ ├── interface │ │ │ └── Component.hpp │ │ │ └── primitive │ │ │ ├── BoundaryManager.hpp │ │ │ ├── ComputationKernel.hpp │ │ │ ├── ForwardCollector.hpp │ │ │ ├── MigrationAccommodator.hpp │ │ │ ├── ModelHandler.hpp │ │ │ ├── SourceInjector.hpp │ │ │ ├── TraceManager.hpp │ │ │ └── TraceWriter.hpp │ │ ├── configurations │ │ └── MapKeys.h │ │ ├── data-units │ │ ├── concrete │ │ │ ├── holders │ │ │ │ ├── FrameBuffer.hpp │ │ │ │ ├── GridBox.hpp │ │ │ │ ├── TracesHolder.hpp │ │ │ │ └── axis │ │ │ │ │ ├── README.md │ │ │ │ │ ├── concrete │ │ │ │ │ ├── Axis3D.hpp │ │ │ │ │ └── RegularAxis.hpp │ │ │ │ │ └── interface │ │ │ │ │ └── Axis.hpp │ │ │ └── migration │ │ │ │ ├── MigrationData.hpp │ │ │ │ └── Result.hpp │ │ └── interface │ │ │ └── DataUnit.hpp │ │ ├── engine-configurations │ │ ├── concrete │ │ │ ├── ModellingEngineConfigurations.hpp │ │ │ └── RTMEngineConfigurations.hpp │ │ └── interface │ │ │ └── EngineConfigurations.hpp │ │ ├── engines │ │ ├── concrete │ │ │ ├── ModellingEngine.hpp │ │ │ └── RTMEngine.hpp │ │ └── interface │ │ │ └── Engine.hpp │ │ ├── helpers │ │ └── callbacks │ │ │ ├── concrete │ │ │ ├── NormWriter.h │ │ │ └── WriterCallback.h │ │ │ ├── interface │ │ │ ├── Callback.hpp │ │ │ └── Extensions.hpp │ │ │ └── primitive │ │ │ └── CallbackCollection.hpp │ │ └── utils │ │ ├── checks │ │ └── Checks.hpp │ │ ├── compressor │ │ └── Compressor.hpp │ │ ├── filters │ │ └── noise_filtering.h │ │ ├── interpolation │ │ └── Interpolator.hpp │ │ ├── io │ │ ├── read_utils.h │ │ └── write_utils.h │ │ └── sampling │ │ └── Sampler.hpp │ ├── prerequisites │ └── libraries │ │ └── boost │ │ └── install_boost_1.64.sh │ ├── src │ ├── CMakeLists.txt │ ├── components │ │ ├── CMakeLists.txt │ │ ├── concrete │ │ │ ├── CMakeLists.txt │ │ │ ├── omp-offload │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── boundary-managers │ │ │ │ │ ├── CPMLBoundaryManager.cpp │ │ │ │ │ ├── SpongeBoundaryManager.cpp │ │ │ │ │ ├── StaggeredCPMLBoundaryManager.cpp │ │ │ │ │ └── extensions │ │ │ │ │ │ ├── HomogenousExtension.cpp │ │ │ │ │ │ ├── MinExtension.cpp │ │ │ │ │ │ ├── RandomExtension.cpp │ │ │ │ │ │ └── ZeroExtension.cpp │ │ │ │ ├── computation-kernels │ │ │ │ │ └── isotropic │ │ │ │ │ │ ├── SecondOrderComputationKernel.cpp │ │ │ │ │ │ └── StaggeredComputationKernel.cpp │ │ │ │ ├── data-units │ │ │ │ │ └── FrameBuffer.cpp │ │ │ │ ├── forward-collectors │ │ │ │ │ └── boundary-saver │ │ │ │ │ │ └── BoundarySaver.cpp │ │ │ │ ├── memory-handlers │ │ │ │ │ └── WaveFieldsMemoryHandler.cpp │ │ │ │ ├── migration-accommodators │ │ │ │ │ └── CrossCorrelationKernel.cpp │ │ │ │ ├── model-handlers │ │ │ │ │ └── SeismicModelHandler.cpp │ │ │ │ ├── source-injectors │ │ │ │ │ └── RickerSourceInjector.cpp │ │ │ │ ├── trace-managers │ │ │ │ │ └── SeismicTraceManager.cpp │ │ │ │ └── trace-writers │ │ │ │ │ └── SeismicTraceWriter.cpp │ │ │ ├── omp │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── boundary-managers │ │ │ │ │ ├── CPMLBoundaryManager.cpp │ │ │ │ │ ├── SpongeBoundaryManager.cpp │ │ │ │ │ ├── StaggeredCPMLBoundaryManager.cpp │ │ │ │ │ └── extensions │ │ │ │ │ │ ├── HomogenousExtension.cpp │ │ │ │ │ │ ├── MinExtension.cpp │ │ │ │ │ │ ├── RandomExtension.cpp │ │ │ │ │ │ └── ZeroExtension.cpp │ │ │ │ ├── computation-kernels │ │ │ │ │ ├── README.md │ │ │ │ │ └── isotropic │ │ │ │ │ │ ├── SecondOrderComputationKernel.cpp │ │ │ │ │ │ └── StaggeredComputationKernel.cpp │ │ │ │ ├── data-units │ │ │ │ │ └── FrameBuffer.cpp │ │ │ │ ├── forward-collectors │ │ │ │ │ └── boundary-saver │ │ │ │ │ │ └── BoundarySaver.cpp │ │ │ │ ├── memory-handlers │ │ │ │ │ └── WaveFieldsMemoryHandler.cpp │ │ │ │ ├── migration-accommodators │ │ │ │ │ └── CrossCorrelationKernel.cpp │ │ │ │ ├── model-handlers │ │ │ │ │ └── SeismicModelHandler.cpp │ │ │ │ ├── source-injectors │ │ │ │ │ └── RickerSourceInjector.cpp │ │ │ │ ├── trace-managers │ │ │ │ │ └── SeismicTraceManager.cpp │ │ │ │ └── trace-writers │ │ │ │ │ └── SeismicTraceWriter.cpp │ │ │ └── oneapi │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── boundary-managers │ │ │ │ ├── CPMLBoundaryManager.cpp │ │ │ │ ├── SpongeBoundaryManager.cpp │ │ │ │ ├── StaggeredCPMLBoundaryManager.cpp │ │ │ │ └── extensions │ │ │ │ │ ├── HomogenousExtension.cpp │ │ │ │ │ ├── MinExtension.cpp │ │ │ │ │ ├── RandomExtension.cpp │ │ │ │ │ └── ZeroExtension.cpp │ │ │ │ ├── computation-kernels │ │ │ │ ├── README.md │ │ │ │ └── isotropic │ │ │ │ │ ├── SecondOrderComputationKernel.cpp │ │ │ │ │ └── StaggeredComputationKernel.cpp │ │ │ │ ├── data-units │ │ │ │ └── FrameBuffer.cpp │ │ │ │ ├── forward-collectors │ │ │ │ └── boundary-saver │ │ │ │ │ └── BoundarySaver.cpp │ │ │ │ ├── memory-handlers │ │ │ │ └── WaveFieldsMemoryHandler.cpp │ │ │ │ ├── migration-accommodators │ │ │ │ └── CrossCorrelationKernel.cpp │ │ │ │ ├── model-handlers │ │ │ │ └── SeismicModelHandler.cpp │ │ │ │ ├── source-injectors │ │ │ │ └── RickerSourceInjector.cpp │ │ │ │ ├── trace-managers │ │ │ │ └── SeismicTraceManager.cpp │ │ │ │ └── trace-writers │ │ │ │ └── SeismicTraceWriter.cpp │ │ └── primitive │ │ │ ├── CMakeLists.txt │ │ │ ├── dependents │ │ │ ├── CMakeLists.txt │ │ │ └── memory-handlers │ │ │ │ └── WaveFieldsMemoryHandler.cpp │ │ │ └── independents │ │ │ ├── CMakeLists.txt │ │ │ ├── boundary-managers │ │ │ ├── CPMLBoundaryManager.cpp │ │ │ ├── NoBoundaryManager.cpp │ │ │ ├── RandomBoundaryManager.cpp │ │ │ ├── SpongeBoundaryManager.cpp │ │ │ ├── StaggeredCPMLBoundaryManager.cpp │ │ │ └── extensions │ │ │ │ └── Extension.cpp │ │ │ ├── computation-kernels │ │ │ ├── README.md │ │ │ └── isotropic │ │ │ │ ├── SecondOrderComputationKernel.cpp │ │ │ │ └── StaggeredComputationKernel.cpp │ │ │ ├── forward-collectors │ │ │ ├── ReversePropagation.cpp │ │ │ ├── TwoPropagation.cpp │ │ │ ├── boundary-saver │ │ │ │ └── BoundarySaver.cpp │ │ │ └── file-handler │ │ │ │ └── file_handler.cpp │ │ │ ├── migration-accommodators │ │ │ └── CrossCorrelationKernel.cpp │ │ │ ├── model-handlers │ │ │ └── SeismicModelHandler.cpp │ │ │ ├── source-injectors │ │ │ └── RickerSourceInjector.cpp │ │ │ ├── trace-managers │ │ │ └── SeismicTraceManager.cpp │ │ │ └── trace-writers │ │ │ └── SeismicTraceWriter.cpp │ ├── data-units │ │ ├── CMakeLists.txt │ │ └── concrete │ │ │ ├── GridBox.cpp │ │ │ └── holders │ │ │ └── axis │ │ │ ├── CMakeLists.txt │ │ │ └── primitive │ │ │ ├── Axis3D.cpp │ │ │ └── RegularAxis.cpp │ ├── engines │ │ ├── CMakeLists.txt │ │ └── concrete │ │ │ ├── ModellingEngine.cpp │ │ │ └── RTMEngine.cpp │ ├── helpers │ │ ├── CMakeLists.txt │ │ └── callbacks │ │ │ ├── CMakeLists.txt │ │ │ ├── concrete │ │ │ ├── NormWriter.cpp │ │ │ └── WriterCallback.cpp │ │ │ └── primitive │ │ │ └── CallbackCollection.cpp │ └── utils │ │ ├── CMakeLists.txt │ │ ├── compressor │ │ ├── CMakeLists.txt │ │ └── Compressor.cpp │ │ ├── filters │ │ └── noise_filtering.cpp │ │ ├── interpolation │ │ └── Interpolator.cpp │ │ ├── io │ │ ├── read_utils.cpp │ │ └── write_utils.cpp │ │ └── sampling │ │ └── Sampler.cpp │ └── tests │ ├── CMakeLists.txt │ ├── README.md │ ├── common │ ├── CMakeLists.txt │ └── TestComputationParameters.cpp │ ├── components │ ├── CMakeLists.txt │ └── independents │ │ ├── CMakeLists.txt │ │ ├── boundary-managers │ │ ├── TestCPMLBoundaryManager.cpp │ │ ├── TestNoneBoundaryManager.cpp │ │ ├── TestRandomBoundaryManager.cpp │ │ └── TestSpongeBoundaryManager.cpp │ │ ├── computation-kernels │ │ └── iso │ │ │ ├── TestSecondOrderComputationKernel.cpp │ │ │ └── TestStaggeredComputationKernel.cpp │ │ ├── forward-collectors │ │ ├── TestReversePropagation.cpp │ │ └── TestTwoPropagation.cpp │ │ ├── migration-accommodators │ │ └── TestCrossCorrelationKernel.cpp │ │ ├── model-handlers │ │ └── TestSeismicModelHandler.cpp │ │ ├── source-injectors │ │ └── TestRickerSourceInjector.cpp │ │ └── trace-managers │ │ └── TestSeismicTraceManager.cpp │ ├── data-units │ ├── CMakeLists.txt │ └── holders │ │ └── TestFrameBuffer.cpp │ ├── test-data │ └── .gitkeep │ ├── test-utils │ ├── CMakeLists.txt │ ├── include │ │ └── operations │ │ │ └── test-utils │ │ │ ├── EnvironmentHandler.hpp │ │ │ ├── NumberHelpers.hpp │ │ │ ├── TestEnums.hpp │ │ │ └── dummy-data-generators │ │ │ ├── DummyConfigurationMapGenerator.hpp │ │ │ ├── DummyDataGenerators.hpp │ │ │ ├── DummyGridBoxGenerator.hpp │ │ │ ├── DummyModelGenerator.hpp │ │ │ ├── DummyParametersGenerator.hpp │ │ │ └── DummyTraceGenerator.hpp │ └── src │ │ ├── CMakeLists.txt │ │ ├── EnvironmentHandler.cpp │ │ ├── NumberHelpers.cpp │ │ └── dummy-data-generators │ │ ├── DummyConfigurationMapGenerator.cpp │ │ ├── DummyGridBoxGenerator.cpp │ │ ├── DummyModelGenerator.cpp │ │ ├── DummyParametersGenerator.cpp │ │ └── DummyTraceGenerator.cpp │ └── test_main.cpp ├── main_migration.cpp ├── main_modelling.cpp ├── prerequisites ├── README.md ├── data-download │ ├── download_bp_data_iso.sh │ └── download_bp_data_iso_minimal.sh ├── libraries │ ├── boost │ │ └── install_boost_1.64.sh │ ├── oneapi │ │ ├── install_oneapi_base_kit.sh │ │ └── install_oneapi_hpc_kit.sh │ ├── opencv │ │ ├── install_opencv_apt.sh │ │ └── install_opencv_git.sh │ ├── spdlog │ │ ├── install_spdlog_apt.sh │ │ └── install_spdlog_git.sh │ └── zfp │ │ └── install_zfp.sh └── setup.sh ├── scripts ├── compare_csv └── tests │ ├── compare_tech.sh │ ├── mpi_test.sh │ ├── scalability_test.sh │ ├── snapshot_test.sh │ └── validation_test.sh ├── src ├── CMakeLists.txt ├── agents │ ├── CMakeLists.txt │ └── concrete │ │ ├── DynamicServerAgent.cpp │ │ ├── DynamicServerlessAgent.cpp │ │ ├── NormalAgent.cpp │ │ ├── StaticServerAgent.cpp │ │ └── StaticServerlessAgent.cpp ├── generators │ ├── CMakeLists.txt │ ├── Generator.cpp │ ├── concrete │ │ └── computation-parameters │ │ │ ├── omp-offload │ │ │ └── computation_parameters_generator.cpp │ │ │ ├── omp │ │ │ └── computation_parameters_generator.cpp │ │ │ └── oneapi │ │ │ └── computation_parameters_generator.cpp │ └── primitive │ │ ├── CallbacksGenerator.cpp │ │ ├── ComponentsGenerator.cpp │ │ ├── ComputationParametersGetter.cpp │ │ └── ConfigurationsGenerator.cpp ├── parsers │ ├── ArgumentsParser.cpp │ ├── CMakeLists.txt │ └── Parser.cpp └── writers │ ├── CMakeLists.txt │ └── concrete │ └── NormalWriter.cpp ├── tests ├── CMakeLists.txt ├── README.md ├── agents │ └── CMakeLists.txt ├── generators │ ├── CMakeLists.txt │ ├── TestGenerator.cpp │ └── primitive │ │ ├── TestComponentsGenerator.cpp │ │ ├── TestComputationParametersGetter.cpp │ │ └── TestConfigurationsGenerator.cpp ├── parsers │ ├── CMakeLists.txt │ └── TestParser.cpp ├── test-data │ └── workloads │ │ ├── callback_configuration.json │ │ ├── computation_parameters.json │ │ ├── engine_configuration.json │ │ └── pipeline.json ├── test-utils │ ├── CMakeLists.txt │ ├── include │ │ └── stbx │ │ │ └── test-utils │ │ │ └── utils.h │ └── src │ │ ├── CMakeLists.txt │ │ └── utils.cpp ├── test_main.cpp └── writers │ └── CMakeLists.txt ├── tools ├── CMakeLists.txt ├── cmp │ └── Comparator.cpp └── gen │ ├── SyntheticModelGenerator.cpp │ └── meta_data.json └── workloads ├── bp_model ├── callback_configuration.json ├── computation_parameters.json ├── engine_configuration.json └── system_configuration.json └── synthetic_model ├── callback_configuration.json ├── computation_parameters.json ├── engine_configuration.json ├── modelling_configuration.json ├── synthetic_delta.json ├── synthetic_epsilon.json ├── synthetic_theta.json ├── synthetic_traces.json ├── synthetic_velocity.json └── system_configuration.json /CONTRIBUTORS.txt: -------------------------------------------------------------------------------- 1 | # This file contains a list of people who've made non-trivial 2 | # contribution to the Seismic Toolbox project. 3 | # 4 | # People who commit code to the project are encouraged to add their names 5 | # here. 6 | # 7 | # Please keep the list sorted by first names. 8 | 9 | Ahmed Ayyad 10 | Amr Nasr 11 | Bassant Magdy 12 | Ehab Nasr 13 | Karim Mourad 14 | Maram Hesham 15 | Marwan Elsafty 16 | Mennatallah Samier 17 | Merna Moawad 18 | Mohammad Basyouni 19 | Mohamed El Sherbiny 20 | Ingy Mounir 21 | Omar Marzouk 22 | Pancee Sawmaa 23 | Zeyad Osama -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Contents 2 | 3 | ## [User Manual](manual) 4 | 5 | * [Advanced Running Options](manual/AdvancedRunningOptions.md) 6 | * [Building And Running](manual/BuildingAndRunning.md) 7 | * [Docker](manual/Docker.md) 8 | * [Results Directories](manual/ResultsDirectories.md) 9 | * [Tools](manual/Tools.md) -------------------------------------------------------------------------------- /include/stbx/agents/Agents.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | 21 | #ifndef PIPELINE_AGENTS_AGENTS_H 22 | #define PIPELINE_AGENTS_AGENTS_H 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #endif //PIPELINE_AGENTS_AGENTS_H 32 | -------------------------------------------------------------------------------- /include/stbx/agents/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/include/stbx/agents/README.md -------------------------------------------------------------------------------- /include/stbx/generators/concrete/computation-parameters/computation_parameters_generator.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | #ifndef SEISMIC_TOOLBOX_GENERATORS_COMPUTATION_PARAMETERS_COMPUTATION_PARAMETERS_GENERATOR_H 20 | #define SEISMIC_TOOLBOX_GENERATORS_COMPUTATION_PARAMETERS_COMPUTATION_PARAMETERS_GENERATOR_H 21 | 22 | #include 23 | 24 | #include 25 | 26 | 27 | operations::common::ComputationParameters *generate_parameters(nlohmann::json &aMap); 28 | 29 | #endif // SEISMIC_TOOLBOX_GENERATORS_COMPUTATION_PARAMETERS_COMPUTATION_PARAMETERS_GENERATOR_H 30 | -------------------------------------------------------------------------------- /include/stbx/writers/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/include/stbx/writers/README.md -------------------------------------------------------------------------------- /include/stbx/writers/Writers.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef PIPELINE_WRITERS_WRITERS_H 21 | #define PIPELINE_WRITERS_WRITERS_H 22 | 23 | #include 24 | #include 25 | 26 | #endif //PIPELINE_WRITERS_WRITERS_H 27 | -------------------------------------------------------------------------------- /include/stbx/writers/concrete/NormalWriter.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef PIPELINE_WRITERS_NORMAL_WRITER_HPP 21 | #define PIPELINE_WRITERS_NORMAL_WRITER_HPP 22 | 23 | #include 24 | 25 | namespace stbx { 26 | namespace writers { 27 | 28 | class NormalWriter : public Writer { 29 | public: 30 | NormalWriter() = default; 31 | 32 | ~NormalWriter() override = default; 33 | 34 | private: 35 | void SpecifyRawMigration() override; 36 | 37 | void Initialize() override {}; 38 | 39 | void PostProcess() override; 40 | }; 41 | }//namespace writers 42 | }//namespace stbx 43 | 44 | #endif //PIPELINE_WRITERS_NORMAL_WRITER_HPP 45 | -------------------------------------------------------------------------------- /libs/BSBase/.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | stages: 4 | - compile 5 | - test 6 | 7 | 8 | compile:openmp: 9 | stage: compile 10 | image: pp-openmp-bundle 11 | tags: 12 | - pp-runner 13 | script: 14 | - ./config.sh -b omp --examples 15 | - ./clean_build.sh 16 | 17 | 18 | compile:oneapi: 19 | stage: compile 20 | image: pp-oneapi-bundle 21 | tags: 22 | - pp-runner 23 | script: 24 | - ./config.sh -b dpc --examples --tests 25 | - ./clean_build.sh 26 | 27 | compile:openmp-offload: 28 | stage: compile 29 | image: pp-oneapi-bundle 30 | tags: 31 | - pp-runner 32 | script: 33 | - ./config.sh -b omp-offload --examples --tests 34 | - ./clean_build.sh 35 | 36 | 37 | test:openmp: 38 | stage: test 39 | needs: [ "compile:openmp" ] 40 | image: pp-openmp-bundle 41 | tags: 42 | - pp-runner 43 | script: 44 | - ./config.sh -b omp --tests 45 | - ./clean_build.sh 46 | - cd ./bin && ctest -v 47 | -------------------------------------------------------------------------------- /libs/BSBase/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ============================================== 2 | BSBase Release Notes 3 | ============================================== 4 | 5 | v1.0.0 6 | ======= 7 | 8 | Includes 9 | ---------------------- 10 | 11 | **Added**: 12 | 13 | * Added logger module that supports multiple flushing streams (i.e. Console and file flushing). 14 | * Added common module that includes the following features: 15 | * Different types of assertions. 16 | * Default definitions for general usages. 17 | * Default exit codes for general usages. 18 | * Singleton class to provide singleton design pattern. 19 | * Added exceptions module to include the following exceptions: 20 | * ``AxisException`` 21 | * ``DeviceNoSpaceException`` 22 | * ``DeviceNotFoundException`` 23 | * ``DirectionException`` 24 | * ``FileNotFoundException`` 25 | * ``IllogicalException`` 26 | * ``IndexOutOfBoundsException`` 27 | * ``NoKeyFoundException`` 28 | * ``InvalidKeyValueException`` 29 | * ``NotImplementedException`` 30 | * ``NullPointerException`` 31 | * ``UndefinedException`` 32 | * ``UnsupportedFeatureException`` 33 | * Added configurations module to have configuration maps and interfaces to be implemented by any class to convert to a configurable one. 34 | * Added memory module for different memory manipulation. 35 | * Added tests for the desired modules. 36 | * Added prerequisites directory that have all prerequisites libraries and files needed by different libraries. -------------------------------------------------------------------------------- /libs/BSBase/TODO.md: -------------------------------------------------------------------------------- 1 | # TODO 2 | 3 | ### Todo 4 | 5 | - Add option to build it either as static or shared library. 6 | - Configurable interface: make acquire function take the configuration map, instead of implicitly making each class that 7 | inherits do a special constructor. Due to it "ConfigurationMap" being an interface, it has to be a pointer in Acquire 8 | properties, but that will cause ownership problems, so either a WrapperClass approach, or shared pointer(A wrapper 9 | class might be better here, refer to SeismicReader in Thoth library). 10 | - Create tests for: 11 | * `JSONConfigurationMap` 12 | - Add `Timer` module (When `Timer` library is completely finished, it shall then be moved to base package) 13 | 14 | ### In Progress 15 | 16 | - [ ] PLACE-HOLDER 17 | 18 | ### Done 19 | 20 | - ConfigurationMap interface needs to consolidate all configuration maps everywhere 21 | - Allow Exceptions to get an additional string to be able to add common info when throwing them. 22 | - Add `Logging` module (Shall be taken from `SeismicToolbox/libs/SeismicOperations`) 23 | - Add `Backend` module (Shall be taken from `SeismicToolbox/libs/SeismicOperations`) 24 | 25 | -------------------------------------------------------------------------------- /libs/BSBase/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/exceptions) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/logger) 21 | -------------------------------------------------------------------------------- /libs/BSBase/examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/BSBase/examples/README.md -------------------------------------------------------------------------------- /libs/BSBase/examples/exceptions/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_executable(Example_BSBase_Exception ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 20 | target_link_libraries(Example_BSBase_Exception BS-BASE) -------------------------------------------------------------------------------- /libs/BSBase/examples/logger/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_executable(Example_BSBase_Logger ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 20 | target_link_libraries(Example_BSBase_Logger BS-BASE) -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/api/c/base.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_API_C_BASE_H 21 | #define BS_BASE_API_C_BASE_H 22 | 23 | /* CONFIGURATIONS. */ 24 | 25 | #endif //BS_BASE_API_C_BASE_H 26 | -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/api/cpp/BSBase.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_API_CPP_BASE_HPP 21 | #define BS_BASE_API_CPP_BASE_HPP 22 | 23 | /* CONFIGURATIONS MODULE. */ 24 | #include 25 | 26 | /* LOGGER MODULE. */ 27 | #include 28 | 29 | /* MEMORY MANAGER MODULE. */ 30 | #include 31 | 32 | /* BACKEND MODULE. */ 33 | #include 34 | #include 35 | 36 | /* COMMON MODULE. */ 37 | #include 38 | 39 | /* EXCEPTIONS MODULE. */ 40 | #include 41 | 42 | #endif //BS_BASE_API_CPP_BASE_HPP 43 | -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/common/Common.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_COMMON_HPP 21 | #define BS_BASE_COMMON_HPP 22 | 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | #endif //BS_BASE_COMMON_HPP 29 | -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/common/Definitions.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_COMMON_DEFINITIONS_HPP 21 | #define BS_BASE_COMMON_DEFINITIONS_HPP 22 | 23 | namespace bs { 24 | namespace base { 25 | namespace common { 26 | 27 | #define BS_BASE_DEF_BRIGHTSKIES_COPY_WRITES "Written by Brightskies INC." /* Copyrights. */ 28 | 29 | } // namespace common 30 | } //namespace base 31 | } //namespace bs 32 | 33 | #endif //BS_BASE_COMMON_DEFINITIONS_HPP 34 | -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/common/ExitCodes.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_COMMON_EXIT_CODES_HPP 21 | #define BS_BASE_COMMON_EXIT_CODES_HPP 22 | 23 | namespace bs { 24 | namespace base { 25 | namespace common { 26 | 27 | #define BS_BASE_RC_FAILURE 0 /* Failure exit code. */ 28 | #define BS_BASE_RC_SUCCESS 1 /* Success exit code. */ 29 | #define BS_BASE_RC_ABORTED 2 /* Abortion exit code. */ 30 | 31 | } // namespace common 32 | } //namespace base 33 | } //namespace bs 34 | 35 | #endif //BS_BASE_COMMON_EXIT_CODES_HPP 36 | -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/common/assertions.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_COMMON_ASSERTIONS_TPP 21 | #define BS_BASE_COMMON_ASSERTIONS_TPP 22 | 23 | #include 24 | 25 | namespace bs { 26 | namespace base { 27 | namespace common { 28 | 29 | #define ASSERT_IS_POD(ARG) std::is_pod::value /* Assert that argument refers to a POD. */ 30 | #define ASSERT_IS_STR(ARG) std::is_base_of::value /* Assert that argument is a string . */ 31 | 32 | #define ASSERT_T_TEMPLATE(ARG) \ 33 | static_assert(ASSERT_IS_POD(ARG) || ASSERT_IS_STR(ARG), "T type is not compatible") 34 | 35 | } // namespace common 36 | } //namespace base 37 | } //namespace bs 38 | 39 | #endif //BS_BASE_COMMON_ASSERTIONS_TPP 40 | -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/configurations/Configurations.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_CONFIGURATIONS_MODULE_HEADER_HPP 21 | #define BS_BASE_CONFIGURATIONS_MODULE_HEADER_HPP 22 | 23 | /* MAPS. */ 24 | #include 25 | 26 | /* INTERFACES. */ 27 | #include 28 | #include 29 | 30 | #endif //BS_BASE_CONFIGURATIONS_MODULE_HEADER_HPP 31 | -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/logger/Logger.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_LOGGER_MODULE_HEADER_HPP 21 | #define BS_BASE_LOGGER_MODULE_HEADER_HPP 22 | 23 | /* INTERFACE. */ 24 | #include 25 | 26 | /* CONCRETES. */ 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | 34 | #endif //BS_BASE_LOGGER_MODULE_HEADER_HPP 35 | -------------------------------------------------------------------------------- /libs/BSBase/include/bs/base/memory/MemoryManager.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_BASE_MEMORY_MODULE_HEADER_HPP 21 | #define BS_BASE_MEMORY_MODULE_HEADER_HPP 22 | 23 | #include 24 | #include 25 | 26 | #endif //BS_BASE_MEMORY_MODULE_HEADER_HPP 27 | -------------------------------------------------------------------------------- /libs/BSBase/prerequisites/README.md: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | 3 | ## Catch2 4 | Folder containing the ```catch.hpp``` header needed to use the Catch2 testing framework used for all the tests of the system. 5 | 6 | ## Nlohmann 7 | Folder containing the ```json.hpp``` header needed to use the ```nlohmann::json``` framework used for json parsing of the system. 8 | -------------------------------------------------------------------------------- /libs/BSBase/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/configurations) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/logger) 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/memory) 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/backend) 23 | 24 | add_library(BS-BASE STATIC ${BS_BASE_SOURCES}) 25 | target_link_libraries(BS-BASE ${LIBS}) 26 | -------------------------------------------------------------------------------- /libs/BSBase/src/README.md: -------------------------------------------------------------------------------- 1 | # ```src``` Subdirectory 2 | 3 | This contains all the source files for the BSBasePackage. 4 | 5 | It follows the same file structure explained in the ```README.md``` in the include directory. 6 | -------------------------------------------------------------------------------- /libs/BSBase/src/backend/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | if (${USE_OMP}) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/omp) 21 | elseif (${USE_DPC}) 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/oneapi) 23 | elseif (${USE_OMP_OFFLOAD}) 24 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/omp-offload) 25 | endif () 26 | 27 | set(BS_BASE_SOURCES ${BS_BASE_SOURCES} PARENT_SCOPE) 28 | -------------------------------------------------------------------------------- /libs/BSBase/src/backend/omp-offload/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/Backend.cpp 22 | 23 | ${BS_BASE_SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSBase/src/backend/omp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/Backend.cpp 22 | 23 | ${BS_BASE_SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSBase/src/backend/oneapi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/Backend.cpp 22 | 23 | ${BS_BASE_SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSBase/src/configurations/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/JSONConfigurationMap.cpp 22 | 23 | ${BS_BASE_SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSBase/src/logger/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/FileLogger.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/ConsoleLogger.cpp 23 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/LoggerCollection.cpp 24 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/LoggerChannel.cpp 25 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/LoggerSystem.cpp 26 | 27 | ${BS_BASE_SOURCES} 28 | PARENT_SCOPE 29 | ) 30 | -------------------------------------------------------------------------------- /libs/BSBase/src/logger/concrete/LoggerChannel.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | using namespace bs::base::logger; 23 | 24 | 25 | LoggerChannel::LoggerChannel(LoggerCollection *aCollection, Operation aOperation) { 26 | this->mOperationType = aOperation; 27 | this->mpCollection = aCollection; 28 | } 29 | 30 | LoggerChannel::~LoggerChannel() = default; 31 | -------------------------------------------------------------------------------- /libs/BSBase/src/memory/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_SOURCES 20 | 21 | # MEMORY TRACKER 22 | ${CMAKE_CURRENT_SOURCE_DIR}/data-units/mem_list.cpp 23 | ${CMAKE_CURRENT_SOURCE_DIR}/data-units/string_list.cpp 24 | ${CMAKE_CURRENT_SOURCE_DIR}/managers/memory_tracker.cpp 25 | ${CMAKE_CURRENT_SOURCE_DIR}/utils/logger.cpp 26 | ${CMAKE_CURRENT_SOURCE_DIR}/utils/mem_utils.cpp 27 | 28 | # MEMORY TRACKER 29 | ${CMAKE_CURRENT_SOURCE_DIR}/managers/memory_allocator.cpp 30 | 31 | ${BS_BASE_SOURCES} 32 | PARENT_SCOPE 33 | ) 34 | -------------------------------------------------------------------------------- /libs/BSBase/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_TESTFILES ${CMAKE_CURRENT_SOURCE_DIR}/test_main.cpp) 20 | 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/backend) 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/configurations) 23 | 24 | enable_testing() 25 | add_executable(bs-base-tests ${BS_BASE_TESTFILES}) 26 | target_link_libraries(bs-base-tests BS-BASE) 27 | -------------------------------------------------------------------------------- /libs/BSBase/tests/README.md: -------------------------------------------------------------------------------- 1 | # Tests Subdirectory 2 | 3 | This contains all the tests for BS Base Package. 4 | 5 | It follows the same file structure explained in the ```README.md``` in the include directory. 6 | -------------------------------------------------------------------------------- /libs/BSBase/tests/backend/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | if (${USE_DPC}) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/oneapi) 21 | endif () 22 | 23 | set(BS_BASE_TESTFILES ${BS_BASE_TESTFILES} PARENT_SCOPE) -------------------------------------------------------------------------------- /libs/BSBase/tests/backend/oneapi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/TestOneAPIBackend.cpp 22 | 23 | ${BS_BASE_TESTFILES} 24 | PARENT_SCOPE 25 | ) 26 | -------------------------------------------------------------------------------- /libs/BSBase/tests/configurations/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Base Package. 4 | # 5 | # BS Base Package is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Base Package is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_BASE_TESTFILES 20 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/TestJSONConfigurationMap.cpp 21 | 22 | ${BS_BASE_TESTFILES} 23 | PARENT_SCOPE 24 | ) -------------------------------------------------------------------------------- /libs/BSBase/tests/configurations/concrete/TestJSONConfigurationMap.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | #include 23 | 24 | using namespace bs::base::configurations; 25 | using json = nlohmann::json; 26 | 27 | 28 | TEST_CASE() { 29 | /// @todo 30 | } -------------------------------------------------------------------------------- /libs/BSBase/tests/test_main.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Base Package. 5 | * 6 | * BS Base Package is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Base Package is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #define CATCH_CONFIG_MAIN 21 | 22 | #include 23 | -------------------------------------------------------------------------------- /libs/BSIO/.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | stages: 2 | - compile 3 | - check 4 | - test 5 | 6 | variables: 7 | GIT_SUBMODULE_STRATEGY: normal 8 | 9 | compile: 10 | stage: compile 11 | image: pp-openmp-bundle 12 | needs: [ ] 13 | tags: 14 | - pp-runner 15 | script: 16 | - ./config.sh --tests --examples 17 | - ./clean_build.sh 18 | 19 | check: 20 | stage: check 21 | image: pp-openmp-bundle 22 | needs: [ ] 23 | allow_failure: true 24 | tags: 25 | - pp-runner 26 | script: 27 | - ./config.sh --examples 28 | - ./clean_build.sh 29 | - apt update && apt -y install cppcheck 30 | - cppcheck --project=bin/compile_commands.json 31 | 32 | test: 33 | stage: test 34 | image: pp-openmp-bundle 35 | needs: [ ] 36 | tags: 37 | - pp-runner 38 | script: 39 | - ./config.sh --tests 40 | - ./clean_build.sh 41 | - cd ./bin && ctest -v 42 | -------------------------------------------------------------------------------- /libs/BSIO/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libs/BSBase"] 2 | path = libs/BSBase 3 | url = ../../parallel-programming/BSBase.git 4 | -------------------------------------------------------------------------------- /libs/BSIO/TODO.md: -------------------------------------------------------------------------------- 1 | # TODO 2 | 3 | This file should keep track of what to revisit, tasks to be kept into consideration and in progress tasks. 4 | 5 | ### Todo 6 | 7 | - [ ] Trace Header Key-Value Map to be modified with value data type. 8 | - [ ] Gather Sorting to be modified to sort any type of key values instead of just `int`. 9 | - [ ] Seismic Stream or Reader and Writer configuration to be modified to utilize boost property tree 10 | - [ ] Enhance trace reader 11 | - [ ] Enhance synthetic model/trace generators 12 | - [ ] TextReader to be modified by dividing `meta-data` of a `*.json` file into subgroups 13 | - [ ] TextReader to be modified to decouple Gathering keys from their values 14 | - [ ] All interfaces constructors must have an explicit one having only `ConfigurationMap` as parameter 15 | 16 | ### In Progress 17 | 18 | - [ ] PLACE-HOLDER 19 | 20 | ### Done 21 | 22 | - [x] PLACE-HOLDER -------------------------------------------------------------------------------- /libs/BSIO/clean_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | verbose= 4 | serial=-j 5 | 6 | while getopts "vsh" opt; do 7 | case $opt in 8 | v) 9 | verbose="VERBOSE=1" 10 | echo "Using verbose mode" 11 | ;; 12 | s) 13 | serial= 14 | echo "Using serial mode" 15 | ;; 16 | h) 17 | echo "Usage of $(basename "$0"):" 18 | echo " to clean the bin directory then builds the code and run it " 19 | echo "" 20 | echo "-v : to print the output of make in details" 21 | echo "" 22 | echo "-s : to compile serially rather than in parallel" 23 | echo "" 24 | exit 1 25 | ;; 26 | *) 27 | echo "Invalid flags entered. run using the -h flag for help" 28 | exit 1 29 | ;; 30 | esac 31 | done 32 | 33 | cd bin/ || exit 34 | make clean 35 | make all $serial $verbose 36 | -------------------------------------------------------------------------------- /libs/BSIO/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/indexer) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/segy) 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/segy-indexing) 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/segy-to-image) -------------------------------------------------------------------------------- /libs/BSIO/examples/README.md: -------------------------------------------------------------------------------- 1 | # Examples -------------------------------------------------------------------------------- /libs/BSIO/examples/indexer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Executable 20 | add_executable(Example_Indexer ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 21 | target_link_libraries(Example_Indexer BS-IO) 22 | -------------------------------------------------------------------------------- /libs/BSIO/examples/indexer/main.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS I/O. 5 | * 6 | * BS I/O is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS I/O is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | #include 23 | #include 24 | #include 25 | 26 | 27 | using namespace std; 28 | using namespace bs::io::indexers; 29 | using namespace bs::io::dataunits; 30 | using namespace bs::io::utils::timer; 31 | 32 | 33 | int main(int argc, char *argv[]) { 34 | vector vec = {TraceHeaderKey::FLDR}; 35 | string file_path = DATA_PATH "/shots0601_0800.segy"; 36 | std::string key = "FLDR"; 37 | FileIndexer fi(file_path, key); 38 | fi.Initialize(); 39 | 40 | ExecutionTimer::Evaluate([&]() { 41 | fi.Index(vec); 42 | }, true); 43 | } 44 | -------------------------------------------------------------------------------- /libs/BSIO/examples/segy-indexing/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Executable 20 | add_executable(Example_SegyIndexing ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 21 | target_link_libraries(Example_SegyIndexing BS-IO) 22 | -------------------------------------------------------------------------------- /libs/BSIO/examples/segy-to-image/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Executable 20 | add_executable(Example_SegyToImage ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 21 | target_link_libraries(Example_SegyToImage BS-IO) 22 | -------------------------------------------------------------------------------- /libs/BSIO/examples/segy/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/reader) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/writer) 21 | -------------------------------------------------------------------------------- /libs/BSIO/examples/segy/reader/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Executable 20 | add_executable(Example_SegyReader ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 21 | target_link_libraries(Example_SegyReader BS-IO) 22 | -------------------------------------------------------------------------------- /libs/BSIO/examples/segy/writer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Executable 20 | add_executable(Example_SegyWriter ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 21 | target_link_libraries(Example_SegyWriter BS-IO) 22 | -------------------------------------------------------------------------------- /libs/BSIO/include/bs/io/api/cpp/BSIO.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS I/O. 5 | * 6 | * BS I/O is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS I/O is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | 21 | #ifndef BS_IO_BS_IO_HPP 22 | #define BS_IO_BS_IO_HPP 23 | 24 | /* DATA UNITS. */ 25 | #include 26 | #include 27 | 28 | /* READERS/WRITERS. */ 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | /* CONFIGURATIONS. */ 37 | #include 38 | 39 | #endif //BS_IO_BS_IO_HPP 40 | -------------------------------------------------------------------------------- /libs/BSIO/include/bs/io/common/Definitions.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS I/O. 5 | * 6 | * BS I/O is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS I/O is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_IO_COMMON_DEFINITIONS_HPP 21 | #define BS_IO_COMMON_DEFINITIONS_HPP 22 | 23 | namespace bs { 24 | namespace io { 25 | namespace common { 26 | namespace definitions { 27 | 28 | #define IO_DEF_BRIGHTSKIES_COPY_WRITES "Written by Brightskies INC. I/O Library" /* Copyrights. */ 29 | 30 | } //namespace definitions 31 | } //namespace common 32 | } //namespace io 33 | } //namespace bs 34 | 35 | #endif //BS_IO_COMMON_DEFINITIONS_HPP 36 | -------------------------------------------------------------------------------- /libs/BSIO/mains/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Converter) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ReaderMetrics) 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Sorter) 22 | -------------------------------------------------------------------------------- /libs/BSIO/mains/Converter/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Executable 20 | add_executable(Converter ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 21 | target_link_libraries(Converter BS-IO) 22 | -------------------------------------------------------------------------------- /libs/BSIO/mains/ReaderMetrics/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Executable 20 | add_executable(ReaderMetrics ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 21 | target_link_libraries(ReaderMetrics BS-IO) 22 | -------------------------------------------------------------------------------- /libs/BSIO/mains/Sorter/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Executable 20 | add_executable(Sorter ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 21 | target_link_libraries(Sorter BS-IO) 22 | -------------------------------------------------------------------------------- /libs/BSIO/prerequisites/README.md: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | 3 | ## Catch2 4 | Folder containing the ```catch.hpp``` header needed to use the Catch2 testing framework used for all the tests of the system. 5 | 6 | ## Nlohmann 7 | Folder containing the ```json.hpp``` header needed to use the ```nlohmann::json``` framework used for json parsing of the system. 8 | -------------------------------------------------------------------------------- /libs/BSIO/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/data-units) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/indexers) 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lookups) 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/streams) 23 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/utils) 24 | 25 | add_library(BS-IO STATIC ${BS_IO_SOURCES}) 26 | target_link_libraries(BS-IO ${LIBS} BS-BASE) -------------------------------------------------------------------------------- /libs/BSIO/src/README.md: -------------------------------------------------------------------------------- 1 | # ```src``` Subdirectory 2 | 3 | This contains all the source files for the I/O Framework (Thoth). 4 | 5 | It follows the same file structure explained in the ```README.md``` in the include directory. 6 | -------------------------------------------------------------------------------- /libs/BSIO/src/data-units/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_IO_SOURCES 20 | 21 | # CONCRETE 22 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/Gather.cpp 23 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/Trace.cpp 24 | 25 | # HELPERS 26 | ${CMAKE_CURRENT_SOURCE_DIR}/helpers/TraceHelper.cpp 27 | 28 | ${BS_IO_SOURCES} 29 | PARENT_SCOPE 30 | ) -------------------------------------------------------------------------------- /libs/BSIO/src/indexers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_IO_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/FileIndexer.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/IndexMap.cpp 23 | 24 | ${BS_IO_SOURCES} 25 | PARENT_SCOPE 26 | ) -------------------------------------------------------------------------------- /libs/BSIO/src/lookups/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_IO_SOURCES 20 | 21 | # MAPPERS 22 | ${CMAKE_CURRENT_SOURCE_DIR}/mappers/SegyHeaderMapper.cpp 23 | ${CMAKE_CURRENT_SOURCE_DIR}/mappers/HeaderMapper.cpp 24 | 25 | # UTILS 26 | ${CMAKE_CURRENT_SOURCE_DIR}/SeismicFilesHeaders.cpp 27 | 28 | ${BS_IO_SOURCES} 29 | PARENT_SCOPE 30 | ) -------------------------------------------------------------------------------- /libs/BSIO/src/streams/concrete/readers/SUReader.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS I/O. 5 | * 6 | * BS I/O is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS I/O is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | using namespace bs::io::streams; 23 | -------------------------------------------------------------------------------- /libs/BSIO/src/utils/checkers/Checker.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS I/O. 5 | * 6 | * BS I/O is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS I/O is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | #include 23 | 24 | using namespace bs::io::utils::checkers; 25 | 26 | 27 | bool 28 | Checker::IsLittleEndianMachine() { 29 | volatile uint32_t i = 0x01234567; 30 | return (*((uint8_t *) (&i))) == 0x67; 31 | } 32 | -------------------------------------------------------------------------------- /libs/BSIO/src/utils/displayers/Displayers.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS I/O. 5 | * 6 | * BS I/O is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS I/O is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | #include 23 | #include 24 | 25 | using namespace bs::io::utils::displayers; 26 | 27 | 28 | void 29 | Displayer::PrintTextHeader(unsigned char *apTextHeader) { 30 | if (apTextHeader == nullptr) { 31 | std::cerr << "Error: Null pointer received. Nothing to be printed." << std::endl; 32 | return; 33 | } 34 | 35 | for (size_t i = 0; i < IO_SIZE_TEXT_HEADER; i++) { 36 | if ((i % 80) == 0) 37 | std::cout << std::endl; 38 | std::cout << apTextHeader[i]; 39 | } 40 | std::cout << std::endl; 41 | } 42 | -------------------------------------------------------------------------------- /libs/BSIO/tests/README.md: -------------------------------------------------------------------------------- 1 | # Tests Subdirectory 2 | 3 | This contains all the tests for IO Framework (Thoth). 4 | 5 | It follows the same file structure explained in the ```README.md``` in the include directory. 6 | -------------------------------------------------------------------------------- /libs/BSIO/tests/data-units/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_IO_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/TestTrace.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/TestGather.cpp 23 | 24 | ${CMAKE_CURRENT_SOURCE_DIR}/data-types/TestTraceHeader.cpp 25 | 26 | ${CMAKE_CURRENT_SOURCE_DIR}/helpers/TestTraceHelper.cpp 27 | 28 | ${BS_IO_TESTFILES} 29 | PARENT_SCOPE 30 | ) -------------------------------------------------------------------------------- /libs/BSIO/tests/streams/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_IO_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/TestJson.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/TestSegy.cpp 23 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/TestSeismic.cpp 24 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/TestSU.cpp 25 | 26 | ${BS_IO_TESTFILES} 27 | PARENT_SCOPE 28 | ) -------------------------------------------------------------------------------- /libs/BSIO/tests/test-files/synthetic_velocity.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta-data": { 3 | "type": "parameter", 4 | "grid-size": { 5 | "nx": 500, 6 | "ny": 1, 7 | "nz": 500 8 | }, 9 | "cell-dimension": { 10 | "dx": 6.25, 11 | "dy": 6.25, 12 | "dz": 6.25 13 | }, 14 | "origin-coordinates": { 15 | "x": 100.25, 16 | "y": 300 17 | } 18 | }, 19 | "data": { 20 | "reflector": [ 21 | { 22 | "type": "plane", 23 | "value": { 24 | "before": 1500, 25 | "after": 2000 26 | }, 27 | "origin": { 28 | "x-index": 0, 29 | "y-index": 0, 30 | "z-index": 99 31 | }, 32 | "slope": { 33 | "x-angle": 0, 34 | "y-angle": 0 35 | } 36 | }, 37 | { 38 | "type": "plane", 39 | "value": { 40 | "before": 2000, 41 | "after": 3000 42 | }, 43 | "origin": { 44 | "x-index": 0, 45 | "y-index": 0, 46 | "z-index": 299 47 | }, 48 | "slope": { 49 | "x-angle": 0, 50 | "y-angle": 0 51 | } 52 | }, 53 | { 54 | "type": "plane", 55 | "value": { 56 | "before": 3000, 57 | "after": 4000 58 | }, 59 | "origin": { 60 | "x-index": 0, 61 | "y-index": 0, 62 | "z-index": 399 63 | }, 64 | "slope": { 65 | "x-angle": 0, 66 | "y-angle": 0 67 | } 68 | } 69 | ] 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /libs/BSIO/tests/test-utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(BS_IO_TESTFILES ${BS_IO_TESTFILES} PARENT_SCOPE) -------------------------------------------------------------------------------- /libs/BSIO/tests/test-utils/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(BS_IO_TESTFILES 2 | 3 | ${CMAKE_CURRENT_SOURCE_DIR}/DataGenerator.cpp 4 | 5 | ${BS_IO_TESTFILES} 6 | PARENT_SCOPE 7 | ) -------------------------------------------------------------------------------- /libs/BSIO/tests/test_main.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS I/O. 5 | * 6 | * BS I/O is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS I/O is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #define CATCH_CONFIG_MAIN 21 | 22 | #include 23 | -------------------------------------------------------------------------------- /libs/BSIO/tests/utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS I/O. 4 | # 5 | # BS I/O is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS I/O is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_IO_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/checkers/TestChecker.cpp 22 | 23 | ${CMAKE_CURRENT_SOURCE_DIR}/convertors/TestFloatingPointFormatter.cpp 24 | ${CMAKE_CURRENT_SOURCE_DIR}/convertors/TestKeysConvertor.cpp 25 | ${CMAKE_CURRENT_SOURCE_DIR}/convertors/TestNumbersConvertor.cpp 26 | ${CMAKE_CURRENT_SOURCE_DIR}/convertors/TestStringsConvertor.cpp 27 | 28 | ${BS_IO_TESTFILES} 29 | PARENT_SCOPE 30 | ) -------------------------------------------------------------------------------- /libs/BSIO/workloads/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/BSIO/workloads/.gitkeep -------------------------------------------------------------------------------- /libs/BSIO/workloads/input_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "properties": { 3 | "text-headers-only": false, 4 | "text-headers-store": false, 5 | "pool-uuid": "f9e78524-12dd-48f5-b491-a9849449d29b", 6 | "container-uuid": "f9e78524-12dd-48f5-b491-a9849449d293" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /libs/BSIO/workloads/output_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "properties": { 3 | "text-headers-only": false, 4 | "text-headers-store": false, 5 | "percentile": 98.5, 6 | "pool-uuid": "f9e78524-12dd-48f5-b491-a9849449d29b", 7 | "container-uuid": "f9e78524-12dd-48f5-b491-a9849449d293" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /libs/BSTimer/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libs/BSBase"] 2 | path = libs/BSBase 3 | url = ../../parallel-programming/BSBase.git 4 | -------------------------------------------------------------------------------- /libs/BSTimer/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ============================================== 2 | BS Timer Release Notes 3 | ============================================== 4 | 5 | v.1.0.1 6 | ======= 7 | 8 | **Fixed**: 9 | 10 | * Fixed tests random failure. 11 | * Fixed GFLOPs reporting. 12 | 13 | 14 | v.1.0.0 15 | ======= 16 | 17 | **Added**: 18 | 19 | * Added ``ElasticTimer``, ``ScopeTimer`` and ``LazyTimer`` for different purpose usages. 20 | * Added support to different backends (i.e. OpenMP and CUDA) and support for serial version as well. 21 | * Added ``StatisticsHelper`` for easing statistical calculations for timing results. 22 | * Added ``Channel`` property. 23 | * Added generic configurations addition to ``Manager`` component. 24 | * Formatted stream (i.e. Console, file or any other stream) reporting. 25 | * Flushing result as text files. 26 | * Special purpose data file flushing for visualization via python module. 27 | * Added example directory that includes end-to-end example for different backends and components. 28 | * Added user manual. 29 | * Added test files. 30 | * Added ``BSBase`` package. 31 | -------------------------------------------------------------------------------- /libs/BSTimer/TODO.md: -------------------------------------------------------------------------------- 1 | # TODO 2 | 3 | This file should keep track of what to revisit, tasks to be kept into consideration and in progress tasks. 4 | 5 | ### Todo 6 | 7 | - [ ] PLACE-HOLDER 8 | 9 | ### In Progress 10 | 11 | - [ ] PLACE-HOLDER 12 | 13 | ### Done 14 | 15 | - [x] PLACE-HOLDER -------------------------------------------------------------------------------- /libs/BSTimer/docs/hld/HighLevelDesign.md: -------------------------------------------------------------------------------- 1 | # High Level Design -------------------------------------------------------------------------------- /libs/BSTimer/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # Add the example executable, linked with the Timer library. 20 | if (USE_OMP) 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/end-to-end/omp) 22 | else () 23 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/end-to-end/serial) 24 | endif () 25 | -------------------------------------------------------------------------------- /libs/BSTimer/examples/end-to-end/omp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_executable(Example_EndToEnd_OMP main.cpp) 20 | target_link_libraries(Example_EndToEnd_OMP BS-TIMER ${SYSTEM_LIBRARIES}) 21 | -------------------------------------------------------------------------------- /libs/BSTimer/examples/end-to-end/serial/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_executable(Example_EndToEnd_CPP main.cpp) 20 | target_link_libraries(Example_EndToEnd_CPP BS-TIMER ${SYSTEM_LIBRARIES}) 21 | -------------------------------------------------------------------------------- /libs/BSTimer/include/bs/timer/api/cpp/BSTimer.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_TIMER_API_CPP_BS_TIMER_H 21 | #define BS_TIMER_API_CPP_BS_TIMER_H 22 | 23 | /// COMMON 24 | #include 25 | 26 | /// CONFIGURATIONS 27 | #include 28 | 29 | /// TIMERS 30 | #include 31 | #include 32 | #include 33 | 34 | /// SNAPSHOTS 35 | #include 36 | 37 | /// UTILS 38 | #include 39 | 40 | #endif // BS_TIMER_API_CPP_BS_TIMER_H 41 | -------------------------------------------------------------------------------- /libs/BSTimer/python/bs/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf8 3 | 4 | """ Timer library python helper. """ 5 | 6 | __author__ = "Brightskies inc." 7 | __license__ = "LGPL-3.0 License" 8 | 9 | __all__ = ["timer"] 10 | -------------------------------------------------------------------------------- /libs/BSTimer/python/bs/timer/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf8 3 | 4 | """ Timer library python helper. """ 5 | 6 | __author__ = "Brightskies inc." 7 | __license__ = "LGPL-3.0 License" 8 | 9 | __all__ = ["plotter"] 10 | -------------------------------------------------------------------------------- /libs/BSTimer/python/bs/timer/plotter/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf8 3 | 4 | """ 5 | Packages that provides plotting and loading for the library. 6 | """ 7 | 8 | __author__ = "Brightskies inc." 9 | __license__ = "LGPL-3.0 License" 10 | 11 | __all__ = ["loader", "parser", "plotter"] 12 | -------------------------------------------------------------------------------- /libs/BSTimer/python/bs/timer/plotter/loader.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf8 3 | 4 | """ 5 | loader.py: 6 | Loading module. 7 | """ 8 | 9 | __author__ = "Brightskies inc." 10 | __license__ = "LGPL-3.0 License" 11 | 12 | 13 | class Loader: 14 | """Loader""" 15 | 16 | def __init__(self, file_path): 17 | """ 18 | Constructor 19 | :param file_path: File path to load binary data from. 20 | """ 21 | self.file_path = file_path 22 | 23 | def load_data(self): 24 | """Loading binary data""" 25 | file = open(self.file_path, "rb") 26 | return file.read() 27 | -------------------------------------------------------------------------------- /libs/BSTimer/python/main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf8 3 | 4 | """ 5 | main.py: 6 | Driver code. 7 | """ 8 | 9 | __author__ = "Brightskies inc." 10 | __license__ = "LGPL-3.0 License" 11 | 12 | import argparse 13 | 14 | from bs.timer.plotter import plotter, loader, parser 15 | 16 | 17 | def main(): 18 | """Main function.""" 19 | arg_parser = argparse.ArgumentParser() 20 | arg_parser.add_argument("-i", "--input", required=True) 21 | arg_parser.add_argument("-o", "--output", required=True) 22 | args = arg_parser.parse_args() 23 | extension = args.input.split(".")[-1] 24 | if extension == "timer": 25 | l = loader.Loader("./" + args.input) 26 | p = parser.Parser(l.load_data()) 27 | plotter.plot_data(p.parse(), args.output) 28 | else: 29 | raise Exception("Wrong file extension") 30 | pass 31 | 32 | 33 | if __name__ == "__main__": 34 | main() 35 | -------------------------------------------------------------------------------- /libs/BSTimer/python/pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | addopts = -l --junit-xml=reports/test_results.xml --pylint-output-file=reports/pytest-pylint.txt --cov-report=xml:reports/coverage.xml --cov-report=html:reports/covhtml --cov=python/bs/timer/ python/tests/ 3 | norecursedirs = doc 4 | junit_family = xunit2 5 | 6 | 7 | -------------------------------------------------------------------------------- /libs/BSTimer/python/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy~=1.19.1 2 | matplotlib==3.3.1 -------------------------------------------------------------------------------- /libs/BSTimer/python/requirements_piepline.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/BSTimer/python/requirements_piepline.txt -------------------------------------------------------------------------------- /libs/BSTimer/python/setup_enviroment.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #============================================================================== 4 | echo \ 5 | " 6 | * Copyright (C) 2021 by Brightskies inc 7 | * 8 | * This file is part of BS Timer Library. 9 | * 10 | * BS Timer Library is free software: you can redistribute it and/or modify it 11 | * under the terms of the GNU Lesser General Public License as published 12 | * by the Free Software Foundation, either version 3 of the License, or 13 | * (at your option) any later version. 14 | * 15 | * BS Timer Library is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU Lesser General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU Lesser General Public 21 | * License along with GEDLIB. If not, see . 22 | " 23 | #============================================================================== 24 | 25 | export PYTHONPATH=${PWD}:$PYTHONPATH 26 | -------------------------------------------------------------------------------- /libs/BSTimer/python/tests/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf8 3 | 4 | """ Timer library python tests. """ 5 | 6 | __author__ = "Brightskies inc." 7 | __license__ = "LGPL-3.0 License" 8 | -------------------------------------------------------------------------------- /libs/BSTimer/python/tests/plotter/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/BSTimer/python/tests/plotter/__init__.py -------------------------------------------------------------------------------- /libs/BSTimer/python/tests/plotter/test_plotter.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf8 3 | 4 | 5 | def test_plot(): 6 | """Plotter""" 7 | pass 8 | -------------------------------------------------------------------------------- /libs/BSTimer/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/configurations) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/core) 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/reporter) 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/data-units) 23 | 24 | add_library(BS-TIMER STATIC ${BS_TIMER_SOURCES}) 25 | target_link_libraries(BS-TIMER BS-BASE) 26 | -------------------------------------------------------------------------------- /libs/BSTimer/src/configurations/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/TimerManager.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/TimerChannel.cpp 23 | 24 | ${BS_TIMER_SOURCES} 25 | PARENT_SCOPE 26 | ) -------------------------------------------------------------------------------- /libs/BSTimer/src/core/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/snapshots) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/timers) 21 | 22 | set(BS_TIMER_SOURCES ${BS_TIMER_SOURCES} PARENT_SCOPE) 23 | -------------------------------------------------------------------------------- /libs/BSTimer/src/core/snapshots/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | if (USE_OMP) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/concrete/omp) 21 | else () 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/concrete/serial) 23 | endif () 24 | 25 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/helpers) 26 | 27 | set(BS_TIMER_SOURCES ${BS_TIMER_SOURCES} PARENT_SCOPE) -------------------------------------------------------------------------------- /libs/BSTimer/src/core/snapshots/concrete/omp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/OmpSnapshot.cpp 22 | 23 | ${BS_TIMER_SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSTimer/src/core/snapshots/concrete/omp/OmpSnapshot.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include "OmpSnapshot.hpp" 21 | 22 | using namespace bs::timer::core::snapshots; 23 | 24 | 25 | OmpSnapshot::OmpSnapshot(SnapshotTarget aSnapshotTarget) {} 26 | 27 | OmpSnapshot::~OmpSnapshot() = default; 28 | 29 | double 30 | OmpSnapshot::Start() { 31 | auto start = omp_get_wtime(); 32 | this->mStart = start; 33 | return this->mStart; 34 | } 35 | 36 | double 37 | OmpSnapshot::End() { 38 | auto end = omp_get_wtime(); 39 | this->mEnd = end; 40 | return this->mEnd; 41 | } 42 | 43 | double 44 | OmpSnapshot::Resolve() { 45 | return this->mEnd - this->mStart; 46 | } 47 | -------------------------------------------------------------------------------- /libs/BSTimer/src/core/snapshots/concrete/serial/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/SerialSnapshot.cpp 22 | 23 | ${BS_TIMER_SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSTimer/src/core/snapshots/helpers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | set(BS_TIMER_SOURCES 19 | 20 | ${CMAKE_CURRENT_SOURCE_DIR}/GenericSnapshot.cpp 21 | 22 | ${BS_TIMER_SOURCES} 23 | PARENT_SCOPE 24 | ) 25 | -------------------------------------------------------------------------------- /libs/BSTimer/src/core/timers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/ElasticTimer.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/ScopeTimer.cpp 23 | 24 | ${BS_TIMER_SOURCES} 25 | PARENT_SCOPE 26 | ) 27 | -------------------------------------------------------------------------------- /libs/BSTimer/src/data-units/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/ChannelStats.cpp 22 | 23 | ${BS_TIMER_SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSTimer/src/reporter/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/TimerReporter.cpp 22 | 23 | ${BS_TIMER_SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSTimer/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_TESTFILES ${CMAKE_CURRENT_SOURCE_DIR}/test_main.cpp) 20 | 21 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/test-utils/include) 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test-utils) 23 | 24 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/configurations) 25 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/core) 26 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/utils) 27 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/reporter) 28 | 29 | enable_testing() 30 | add_executable(bs-timer-tests ${BS_TIMER_TESTFILES}) 31 | target_link_libraries(bs-timer-tests BS-TIMER ${SYSTEM_LIBRARIES}) 32 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/configurations/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/TestManager.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/TestChannel.cpp 23 | 24 | ${BS_TIMER_TESTFILES} 25 | PARENT_SCOPE 26 | ) 27 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/core/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/TestLazyTimer.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/TestTimer.cpp 23 | 24 | ${BS_TIMER_TESTFILES} 25 | PARENT_SCOPE 26 | ) -------------------------------------------------------------------------------- /libs/BSTimer/tests/core/TestLazyTimer.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | 23 | TEST_CASE("LazyTimer - Class", "[Core]") { 24 | 25 | } -------------------------------------------------------------------------------- /libs/BSTimer/tests/reporter/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/TestReporter.cpp 22 | 23 | ${BS_TIMER_TESTFILES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src) 20 | 21 | set(BS_TIMER_TESTFILES ${BS_TIMER_TESTFILES} PARENT_SCOPE) 22 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/include/bs/timer/test-utils/FunctionsGenerator.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_TIMER_TESTS_UTILS_FUNCTIONS_GENERATOR_HPP 21 | #define BS_TIMER_TESTS_UTILS_FUNCTIONS_GENERATOR_HPP 22 | 23 | namespace bs { 24 | namespace timer { 25 | namespace testutils { 26 | 27 | void 28 | target_technology_test_function(); 29 | 30 | void 31 | test_function(); 32 | 33 | } //namespace testutils 34 | } //namespace timer 35 | } //namespace bs 36 | 37 | #endif // BS_TIMER_TESTS_UTILS_FUNCTIONS_GENERATOR_HPP 38 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | if (USE_OMP) 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/concrete/omp) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/concrete/serial) 21 | else () 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/concrete/serial) 23 | endif () 24 | 25 | set(BS_TIMER_TESTFILES 26 | 27 | ${CMAKE_CURRENT_SOURCE_DIR}/FunctionsGenerator.cpp 28 | 29 | ${BS_TIMER_TESTFILES} 30 | PARENT_SCOPE 31 | ) 32 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/src/FunctionsGenerator.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | #ifdef USE_OMP 23 | 24 | #include "concrete/omp/OmpFunctionsGenerator.hpp" 25 | #include "concrete/serial/SerialFunctionsGenerator.hpp" 26 | 27 | #else 28 | 29 | #include "concrete/serial/SerialFunctionsGenerator.hpp" 30 | 31 | #endif 32 | 33 | 34 | void 35 | bs::timer::testutils::target_technology_test_function() { 36 | #if USE_OMP 37 | omp_test_function(); 38 | #else 39 | serial_test_function(); 40 | #endif 41 | } 42 | 43 | void 44 | bs::timer::testutils::test_function() { 45 | serial_test_function(); 46 | } -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/src/concrete/omp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/OmpFunctionsGenerator.cpp 22 | 23 | ${BS_TIMER_TESTFILES} 24 | PARENT_SCOPE 25 | ) 26 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/src/concrete/omp/OmpFunctionsGenerator.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include "OmpFunctionsGenerator.hpp" 21 | 22 | #include 23 | 24 | #define BS_TIMER_TESTS_ARRAY_SIZE 1000 /* Test array size definition. */ 25 | 26 | void 27 | omp_internal_test_function() { 28 | float array[BS_TIMER_TESTS_ARRAY_SIZE][BS_TIMER_TESTS_ARRAY_SIZE]; 29 | #pragma omp parallel for 30 | for (int i = 0; i < BS_TIMER_TESTS_ARRAY_SIZE; i++) { 31 | for (int j = 0; j < BS_TIMER_TESTS_ARRAY_SIZE; j++) { 32 | array[i][j] = sqrt(i) * sqrt(j) * sqrt(i) * sqrt(j); 33 | } 34 | } 35 | } 36 | 37 | void 38 | bs::timer::testutils::omp_test_function() { 39 | omp_internal_test_function(); 40 | } 41 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/src/concrete/omp/OmpFunctionsGenerator.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_TIMER_TESTS_UTILS_OMP_FUNCTIONS_GENERATOR_HPP 21 | #define BS_TIMER_TESTS_UTILS_OMP_FUNCTIONS_GENERATOR_HPP 22 | 23 | namespace bs { 24 | namespace timer { 25 | namespace testutils { 26 | 27 | void 28 | omp_test_function(); 29 | 30 | } //namespace testutils 31 | } //namespace timer 32 | } //namespace bs 33 | 34 | #endif //BS_TIMER_TESTS_UTILS_OMP_FUNCTIONS_GENERATOR_HPP 35 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/src/concrete/serial/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/SerialFunctionsGenerator.cpp 22 | 23 | ${BS_TIMER_TESTFILES} 24 | PARENT_SCOPE 25 | ) 26 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/src/concrete/serial/SerialFunctionsGenerator.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include "SerialFunctionsGenerator.hpp" 21 | 22 | #include 23 | 24 | #define BS_TIMER_TESTS_ARRAY_SIZE 1000 /* Test array size definition. */ 25 | 26 | void 27 | serial_internal_test_function() { 28 | float array[BS_TIMER_TESTS_ARRAY_SIZE][BS_TIMER_TESTS_ARRAY_SIZE]; 29 | for (int i = 0; i < BS_TIMER_TESTS_ARRAY_SIZE; i++) { 30 | for (int j = 0; j < BS_TIMER_TESTS_ARRAY_SIZE; j++) { 31 | array[i][j] = sqrt(i) * sqrt(j) * sqrt(i) * sqrt(j); 32 | } 33 | } 34 | } 35 | 36 | void 37 | bs::timer::testutils::serial_test_function() { 38 | serial_internal_test_function(); 39 | } -------------------------------------------------------------------------------- /libs/BSTimer/tests/test-utils/src/concrete/serial/SerialFunctionsGenerator.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef BS_TIMER_TESTS_UTILS_SERIAL_FUNCTIONS_GENERATOR_HPP 21 | #define BS_TIMER_TESTS_UTILS_SERIAL_FUNCTIONS_GENERATOR_HPP 22 | 23 | namespace bs { 24 | namespace timer { 25 | namespace testutils { 26 | 27 | void 28 | serial_test_function(); 29 | 30 | } //namespace testutils 31 | } //namespace timer 32 | } //namespace bs 33 | 34 | #endif //BS_TIMER_TESTS_UTILS_SERIAL_FUNCTIONS_GENERATOR_HPP 35 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/test_main.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of BS Timer. 5 | * 6 | * BS Timer is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * BS Timer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #define CATCH_CONFIG_MAIN 21 | 22 | #include 23 | -------------------------------------------------------------------------------- /libs/BSTimer/tests/utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of BS Timer. 4 | # 5 | # BS Timer is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # BS Timer is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(BS_TIMER_TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/TestStatisticsHelper.cpp 22 | 23 | ${BS_TIMER_TESTFILES} 24 | PARENT_SCOPE 25 | ) 26 | -------------------------------------------------------------------------------- /libs/SeismicOperations/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/SeismicOperations/.gitignore -------------------------------------------------------------------------------- /libs/SeismicOperations/.gitlab-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/SeismicOperations/.gitlab-ci.yml -------------------------------------------------------------------------------- /libs/SeismicOperations/.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/SeismicOperations/.gitmodules -------------------------------------------------------------------------------- /libs/SeismicOperations/CONTRIBUTORS.txt: -------------------------------------------------------------------------------- 1 | # This file contains a list of people who've made non-trivial 2 | # contribution to the Seismic Operations Library project. 3 | # 4 | # People who commit code to the project are encouraged to add their names 5 | # here. 6 | # 7 | # Please keep the list sorted by first names. 8 | 9 | Ahmed Ayyad 10 | Amr Nasr 11 | Ehab Nasr 12 | Karim Mourad 13 | Marwan Elsafty 14 | Mennatallah Samier 15 | Merna Moawad 16 | Mohammad Basyouni 17 | Mohamed El Sherbiny 18 | Ingy Mounir 19 | Zeyad Osama -------------------------------------------------------------------------------- /libs/SeismicOperations/clean_build.sh: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libs/SeismicOperations/config.sh: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libs/SeismicOperations/docs/README.md: -------------------------------------------------------------------------------- 1 | # Contents 2 | 3 | ## [User Manual](manual) 4 | 5 | * [Features](manual/Features.md) 6 | 7 | ## [References](references) 8 | 9 | * [](manual) -------------------------------------------------------------------------------- /libs/SeismicOperations/docs/references/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/SeismicOperations/docs/references/.gitkeep -------------------------------------------------------------------------------- /libs/SeismicOperations/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/migration) 20 | -------------------------------------------------------------------------------- /libs/SeismicOperations/examples/migration/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_executable(Example_OP_Main ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) 20 | target_link_libraries(Example_OP_Main SEISMIC-OPERATIONS) -------------------------------------------------------------------------------- /libs/SeismicOperations/examples/migration/main.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | /// { @todo To be removed when all NOT_IMPLEMENTED_EXCEPTION() are resolved 21 | #include 22 | /// } 23 | 24 | int main(int argc, char *argv[]) { 25 | /// @todo To be implemented 26 | throw bs::base::exceptions::NOT_IMPLEMENTED_EXCEPTION(); 27 | } -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/components/independents/concrete/boundary-managers/README.md: -------------------------------------------------------------------------------- 1 | # Boundary Managers 2 | 3 | All different implementations of the boundary manager interface should reside here. Description of the different 4 | implementations should be below. 5 | 6 | ## Perfect Refection (No Boundary Condition) 7 | 8 | * Component Class : NoBoundaryManager 9 | * Utilizes perfect reflection boundaries(0 velocity in boundaries). 10 | * Supports : 2D & 3D, Full Model and Window Model. 11 | 12 | ## Random Boundaries 13 | 14 | * Component Class : RandomBoundaryManager 15 | * Utilizes random boundaries(defines a random but smooth transition to the velocities in the boundaries). 16 | * Supports : 2D & 3D, Full Model and Window Model. 17 | -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/components/independents/concrete/computation-kernels/README.md: -------------------------------------------------------------------------------- 1 | # Computation Kernels 2 | 3 | All different implementations of the computation kernel interface should reside here. Description of the different 4 | implementations should be below. 5 | -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/components/independents/concrete/forward-collectors/README.md: -------------------------------------------------------------------------------- 1 | # Forward Collectors 2 | 3 | All different implementations of the forward collectors interface should reside here. Description of the different 4 | implementations should be below. 5 | -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/components/independents/concrete/migration-accommodators/README.md: -------------------------------------------------------------------------------- 1 | # Correlation Kernels 2 | 3 | All different implementations of the correlation kernel interface should reside here. Description of the different 4 | implementations should be below. 5 | -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/components/independents/concrete/model-handlers/README.md: -------------------------------------------------------------------------------- 1 | # Model handlers 2 | 3 | All different implementations of the model handlers interface should reside here. Description of the different 4 | implementations should be below. 5 | 6 | -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/components/independents/concrete/source-injectors/README.md: -------------------------------------------------------------------------------- 1 | # Source Injectors 2 | 3 | All different implementations of the source injectors interface should reside here. Description of the different 4 | implementations should be below. 5 | -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/components/independents/concrete/trace-managers/README.md: -------------------------------------------------------------------------------- 1 | # Trace Managers 2 | 3 | All different implementations of the trace manager interface should reside here. Description of the different 4 | implementations should be below. 5 | -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/data-units/interface/DataUnit.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef OPERATIONS_LIB_DATA_UNIT_HPP 21 | #define OPERATIONS_LIB_DATA_UNIT_HPP 22 | 23 | namespace operations { 24 | namespace dataunits { 25 | 26 | enum REPORT_LEVEL { 27 | SIMPLE, VERBOSE 28 | }; 29 | 30 | class DataUnit { 31 | public: 32 | /** 33 | * @brief Destructors should be overridden to ensure correct memory management. 34 | */ 35 | virtual ~DataUnit() {}; 36 | }; 37 | } //namespace dataunits 38 | } //namespace operations 39 | 40 | #endif //OPERATIONS_LIB_DATA_UNIT_HPP -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/helpers/callbacks/interface/Extensions.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef OPERATIONS_LIB_HELPERS_CALLBACKS_EXTENSIONS_HPP 21 | #define OPERATIONS_LIB_HELPERS_CALLBACKS_EXTENSIONS_HPP 22 | 23 | namespace operations { 24 | namespace helpers { 25 | namespace callbacks { 26 | 27 | #define OP_K_EXT_SU ".su" 28 | #define OP_K_EXT_SGY ".segy" 29 | #define OP_K_EXT_IMG ".png" 30 | #define OP_K_EXT_BIN ".bin" 31 | #define OP_K_EXT_CSV ".csv" 32 | #define OP_K_EXT_NRM ".tsv" 33 | 34 | } //namespace callbacks 35 | } //namespace operations 36 | } //namespace operations 37 | 38 | #endif //OPERATIONS_LIB_HELPERS_CALLBACKS_EXTENSIONS_HPP 39 | -------------------------------------------------------------------------------- /libs/SeismicOperations/include/operations/utils/checks/Checks.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef OPERATIONS_LIB_UTILS_CHECKS_HPP 21 | #define OPERATIONS_LIB_UTILS_CHECKS_HPP 22 | 23 | #include 24 | 25 | namespace operations { 26 | namespace utils { 27 | namespace checks { 28 | /** 29 | * @brief Checks if there is any device detected 30 | * @return boolean[out] 31 | */ 32 | bool inline is_device_not_exist() { 33 | return omp_get_num_devices() <= 0; 34 | } 35 | } //namespace checks 36 | } //namespace utils 37 | } //namespace operations 38 | 39 | #endif //OPERATIONS_LIB_UTILS_CHECKS_HPP -------------------------------------------------------------------------------- /libs/SeismicOperations/prerequisites/libraries/boost/install_boost_1.64.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Boost download script assumes you have sudo access..." 4 | 5 | wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.bz2 6 | tar --bzip2 -xf boost_1_64_0.tar.bz2 7 | cd boost_1_64_0 || exit 8 | ./bootstrap.sh --prefix=/usr/ 9 | ./b2 10 | sudo ./b2 install 11 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/components) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/data-units) 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/engines) 22 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/helpers) 23 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/utils) 24 | 25 | 26 | set(OPERATIONS-LIBS 27 | 28 | BS-BASE 29 | BS-TIMER 30 | BS-IO 31 | FILE-COMPRESSION 32 | ${OPERATIONS-LIBS} 33 | ) 34 | 35 | add_library(SEISMIC-OPERATIONS STATIC ${OPERATIONS-SOURCES}) 36 | target_link_libraries(SEISMIC-OPERATIONS ${OPERATIONS-LIBS}) 37 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/components/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/concrete) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/primitive) 21 | 22 | set(OPERATIONS-SOURCES ${OPERATIONS-SOURCES} PARENT_SCOPE) 23 | 24 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/components/concrete/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | # TECHNOLOGY 20 | if (USE_OMP) 21 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/omp) 22 | elseif (USE_DPC) 23 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/oneapi) 24 | elseif (USE_OMP_OFFLOAD) 25 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/omp-offload) 26 | endif () 27 | 28 | set(OPERATIONS-SOURCES ${OPERATIONS-SOURCES} PARENT_SCOPE) 29 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/components/concrete/omp/computation-kernels/README.md: -------------------------------------------------------------------------------- 1 | # Computation Kernels 2 | 3 | All different implementations of the computation kernel interface should reside here. Description of the different 4 | implementations should be below. 5 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/components/concrete/oneapi/computation-kernels/README.md: -------------------------------------------------------------------------------- 1 | # Computation Kernels 2 | 3 | All different implementations of the computation kernel interface should reside here. Description of the different 4 | implementations should be below. 5 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/components/primitive/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/dependents) 20 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/independents) 21 | 22 | set(OPERATIONS-SOURCES ${OPERATIONS-SOURCES} PARENT_SCOPE) 23 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/components/primitive/dependents/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-SOURCES 20 | 21 | # MEMORY HANDLERS 22 | ${CMAKE_CURRENT_SOURCE_DIR}/memory-handlers/WaveFieldsMemoryHandler.cpp 23 | 24 | ${OPERATIONS-SOURCES} 25 | PARENT_SCOPE 26 | ) 27 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/components/primitive/independents/computation-kernels/README.md: -------------------------------------------------------------------------------- 1 | # Computation Kernels 2 | 3 | All different implementations of the computation kernel interface should reside here. Description of the different 4 | implementations should be below. 5 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/data-units/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | #add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/concrete/holders/axis) 20 | set(OPERATIONS-SOURCES 21 | 22 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/GridBox.cpp 23 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/holders/axis/primitive/Axis3D.cpp 24 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/holders/axis/primitive/RegularAxis.cpp 25 | 26 | ${OPERATIONS-SOURCES} 27 | PARENT_SCOPE 28 | ) -------------------------------------------------------------------------------- /libs/SeismicOperations/src/data-units/concrete/holders/axis/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-SOURCES 20 | 21 | primitive/Axis3D.cpp 22 | primitive/RegularAxis.cpp 23 | 24 | ${OPERATIONS-SOURCES} 25 | PARENT_SCOPE 26 | ) -------------------------------------------------------------------------------- /libs/SeismicOperations/src/engines/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/RTMEngine.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/ModellingEngine.cpp 23 | 24 | ${OPERATIONS-SOURCES} 25 | PARENT_SCOPE 26 | ) -------------------------------------------------------------------------------- /libs/SeismicOperations/src/helpers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(callbacks) 20 | 21 | set(OPERATIONS-SOURCES ${OPERATIONS-SOURCES} PARENT_SCOPE) 22 | -------------------------------------------------------------------------------- /libs/SeismicOperations/src/helpers/callbacks/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/primitive/CallbackCollection.cpp 22 | 23 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/WriterCallback.cpp 24 | 25 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/NormWriter.cpp 26 | 27 | ${OPERATIONS-SOURCES} 28 | PARENT_SCOPE 29 | ) -------------------------------------------------------------------------------- /libs/SeismicOperations/src/utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/filters/noise_filtering.cpp 22 | 23 | ${CMAKE_CURRENT_SOURCE_DIR}/interpolation/Interpolator.cpp 24 | 25 | ${CMAKE_CURRENT_SOURCE_DIR}/io/read_utils.cpp 26 | ${CMAKE_CURRENT_SOURCE_DIR}/io/write_utils.cpp 27 | 28 | ${CMAKE_CURRENT_SOURCE_DIR}/sampling/Sampler.cpp 29 | 30 | ${OPERATIONS-SOURCES} 31 | PARENT_SCOPE 32 | ) 33 | 34 | set(OPERATIONS-LIBS 35 | 36 | ${OPERATIONS-LIBS} 37 | PARENT_SCOPE 38 | ) 39 | 40 | add_subdirectory(compressor) 41 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_definitions(-DOPERATIONS_TEST_DATA_PATH="${CMAKE_CURRENT_SOURCE_DIR}/test-data") 20 | 21 | set(OPERATIONS-TESTFILES ${CMAKE_CURRENT_SOURCE_DIR}/test_main.cpp) 22 | 23 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/test-utils/include) 24 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test-utils/src) 25 | 26 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/common) 27 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/components) 28 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/data-units) 29 | 30 | enable_testing() 31 | add_executable(seismic-operations-tests ${OPERATIONS-TESTFILES}) 32 | target_link_libraries(seismic-operations-tests SEISMIC-OPERATIONS) 33 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/README.md: -------------------------------------------------------------------------------- 1 | # Tests Subdirectory 2 | 3 | This contains all the tests for Seismic Operations Library. 4 | 5 | It follows the same file structure explained in the ```README.md``` in the ```include``` directory. 6 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/common/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-TESTFILES 20 | 21 | # COMMON 22 | ${CMAKE_CURRENT_SOURCE_DIR}/TestComputationParameters.cpp 23 | 24 | ${OPERATIONS-TESTFILES} 25 | PARENT_SCOPE 26 | ) 27 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/components/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/independents) 20 | 21 | set(OPERATIONS-TESTFILES ${OPERATIONS-TESTFILES} PARENT_SCOPE) 22 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/data-units/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/holders/TestFrameBuffer.cpp 22 | 23 | ${OPERATIONS-TESTFILES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/test-data/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/libs/SeismicOperations/tests/test-data/.gitkeep -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/test-utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-TESTFILES ${OPERATIONS-TESTFILES} PARENT_SCOPE) -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/test-utils/include/operations/test-utils/EnvironmentHandler.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | 21 | #ifndef OPERATIONS_LIB_TEST_UTILS_TECHNOLOGY_HANDLER_HPP 22 | #define OPERATIONS_LIB_TEST_UTILS_TECHNOLOGY_HANDLER_HPP 23 | 24 | namespace operations { 25 | namespace testutils { 26 | 27 | int set_environment(); 28 | 29 | } //namespace testutils 30 | } //namespace operations 31 | 32 | #endif //OPERATIONS_LIB_TEST_UTILS_TECHNOLOGY_HANDLER_HPP 33 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/test-utils/include/operations/test-utils/TestEnums.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | 21 | #ifndef OPERATIONS_LIB_TEST_UTILS_TEST_ENUMS_HPP 22 | #define OPERATIONS_LIB_TEST_UTILS_TEST_ENUMS_HPP 23 | 24 | namespace operations { 25 | namespace testutils { 26 | 27 | enum OP_TU_DIMS { 28 | OP_TU_2D, OP_TU_3D 29 | }; 30 | 31 | enum OP_TU_WIND { 32 | OP_TU_INC_WIND, OP_TU_NO_WIND 33 | }; 34 | 35 | } //namespace testutils 36 | } //namespace operations 37 | 38 | #endif //OPERATIONS_LIB_TEST_UTILS_TEST_ENUMS_HPP 39 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/test-utils/include/operations/test-utils/dummy-data-generators/DummyDataGenerators.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | 21 | #ifndef OPERATIONS_LIB_TEST_UTILS_DUMMY_DATA_GENERATORS_HPP 22 | #define OPERATIONS_LIB_TEST_UTILS_DUMMY_DATA_GENERATORS_HPP 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | #endif //OPERATIONS_LIB_TEST_UTILS_DUMMY_DATA_GENERATORS_HPP 29 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/test-utils/include/operations/test-utils/dummy-data-generators/DummyGridBoxGenerator.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | 21 | #ifndef OPERATIONS_LIB_TEST_UTILS_DUMMY_DATA_GENERATORS_DUMMY_GRID_BOX_GENERATOR_HPP 22 | #define OPERATIONS_LIB_TEST_UTILS_DUMMY_DATA_GENERATORS_DUMMY_GRID_BOX_GENERATOR_HPP 23 | 24 | #include 25 | #include 26 | 27 | namespace operations { 28 | namespace testutils { 29 | 30 | dataunits::GridBox *generate_grid_box(OP_TU_DIMS aDims, OP_TU_WIND aWindow); 31 | 32 | } //namespace testutils 33 | } //namespace operations 34 | 35 | #endif //OPERATIONS_LIB_TEST_UTILS_DUMMY_DATA_GENERATORS_DUMMY_GRID_BOX_GENERATOR_HPP 36 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/test-utils/include/operations/test-utils/dummy-data-generators/DummyTraceGenerator.hpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | 21 | #ifndef OPERATIONS_LIB_TEST_UTILS_DUMMY_TRACE_GENERATOR_HPP 22 | #define OPERATIONS_LIB_TEST_UTILS_DUMMY_TRACE_GENERATOR_HPP 23 | 24 | #include 25 | 26 | namespace operations { 27 | namespace testutils { 28 | 29 | float *generate_dummy_trace(const std::string &aFileName, 30 | dataunits::GridBox *apGridBox, 31 | int trace_stride_x, 32 | int trace_stride_y); 33 | 34 | } //namespace testutils 35 | } //namespace operations 36 | 37 | #endif //OPERATIONS_LIB_TEST_UTILS_DUMMY_TRACE_GENERATOR_HPP 38 | -------------------------------------------------------------------------------- /libs/SeismicOperations/tests/test_main.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | 21 | #define CATCH_CONFIG_MAIN 22 | 23 | #include 24 | -------------------------------------------------------------------------------- /prerequisites/README.md: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | 3 | This folder includes all the prerequisites needed for developing in seismic toolbox. 4 | All scripts included assumes you have ```sudo``` access. To install and download everything you can easily run the ```setup.sh``` script 5 | 6 | ## Libraries 7 | ### Boost 8 | Folder containing the a [script](libraries/boost/install_boost_1.64.sh) for downloading and installing ```boost``` library. 9 | 10 | ### Catch2 11 | Folder containing the ```catch.hpp``` header needed to use the Catch2 testing framework used for all the tests of the system. 12 | 13 | ### OpenCV 14 | Folder containing the a script for downloading and installing ```OpenCV``` library. 15 | * [```apt``` version](libraries/opencv/install_opencv_apt.sh) 16 | * [```git``` version](libraries/opencv/install_opencv_git.sh) 17 | 18 | ### ZFP Compression 19 | Folder containing the script for downloading and installing ```zfp``` library. 20 | * [```zfp``` library](libraries/zfp/install_zfp.sh) 21 | 22 | ## Data 23 | Folder containing the scripts for downloading 2004 BP model (refer [here](https://wiki.seg.org/wiki/2004_BP_velocity_estimation_benchmark_model) for more information) 24 | * [Minimum version (~8GB download)](data-download/download_bp_data_iso.sh) 25 | * [Normal version (~1GB download)](data-download/download_bp_data_iso_minimal.sh) 26 | -------------------------------------------------------------------------------- /prerequisites/libraries/oneapi/install_oneapi_base_kit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #============================================================================== 4 | :' 5 | * Copyright (C) 2021 by Brightskies inc 6 | * 7 | * This file is part of SeismicToolbox. 8 | * 9 | * SeismicToolbox is free software: you can redistribute it and/or modify it 10 | * under the terms of the GNU Lesser General Public License as published 11 | * by the Free Software Foundation, either version 3 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * SeismicToolbox is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with GEDLIB. If not, see . 21 | ' 22 | #============================================================================== 23 | 24 | echo "OneAPI Base Kit download script assumes you have sudo access..." 25 | 26 | # Save PWD to return back to it at the end. 27 | dir="$(pwd)" 28 | 29 | # Create directory for installations. 30 | cd ~ || exit 31 | if [ ! -d "hpclibs" ]; then 32 | mkdir hpclibs && cd hpclibs || exit 33 | fi 34 | 35 | # Download. 36 | sudo wget https://registrationcenter-download.intel.com/akdlm/irc_nas/17431/l_BaseKit_p_2021.1.0.2659_offline.sh 37 | sudo bash l_BaseKit_p_2021.1.0.2659_offline.sh 38 | 39 | # Return to PWD. 40 | cd "$dir" || exit 41 | -------------------------------------------------------------------------------- /prerequisites/libraries/oneapi/install_oneapi_hpc_kit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #============================================================================== 4 | :' 5 | * Copyright (C) 2021 by Brightskies inc 6 | * 7 | * This file is part of SeismicToolbox. 8 | * 9 | * SeismicToolbox is free software: you can redistribute it and/or modify it 10 | * under the terms of the GNU Lesser General Public License as published 11 | * by the Free Software Foundation, either version 3 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * SeismicToolbox is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with GEDLIB. If not, see . 21 | ' 22 | #============================================================================== 23 | 24 | echo "OneAPI Base Kit download script assumes you have sudo access..." 25 | 26 | # Save PWD to return back to it at the end. 27 | dir="$(pwd)" 28 | 29 | # Create directory for installations. 30 | cd ~ || exit 31 | if [ ! -d "hpclibs" ]; then 32 | mkdir hpclibs && cd hpclibs || exit 33 | fi 34 | 35 | # Download. 36 | sudo wget https://registrationcenter-download.intel.com/akdlm/irc_nas/17427/l_HPCKit_p_2021.1.0.2684_offline.sh 37 | sudo bash l_HPCKit_p_2021.1.0.2684_offline.sh 38 | 39 | # Return to PWD. 40 | cd "$dir" || exit 41 | -------------------------------------------------------------------------------- /prerequisites/libraries/opencv/install_opencv_apt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #============================================================================== 4 | :' 5 | * Copyright (C) 2021 by Brightskies inc 6 | * 7 | * This file is part of SeismicToolbox. 8 | * 9 | * SeismicToolbox is free software: you can redistribute it and/or modify it 10 | * under the terms of the GNU Lesser General Public License as published 11 | * by the Free Software Foundation, either version 3 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * SeismicToolbox is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with GEDLIB. If not, see . 21 | ' 22 | #============================================================================== 23 | 24 | echo "OpenCV download script assumes you have sudo access..." 25 | 26 | sudo apt update 27 | sudo apt install libopencv-dev python3-opencv 28 | python3 -c "import cv2; print(cv2.__version__)" 29 | -------------------------------------------------------------------------------- /prerequisites/libraries/spdlog/install_spdlog_apt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #============================================================================== 4 | # author :bassant-magdy 5 | # usage :sudo ./ 6 | #============================================================================== 7 | 8 | echo "Spdlog download script assumes you have sudo access..." 9 | 10 | sudo apt update 11 | sudo apt install libspdlog-dev 12 | 13 | -------------------------------------------------------------------------------- /prerequisites/libraries/spdlog/install_spdlog_git.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #============================================================================== 4 | # author :bassant-magdy 5 | # usage :sudo ./ 6 | #============================================================================== 7 | 8 | echo "Spdlog download script assumes you have sudo access..." 9 | 10 | dir="$(pwd)" 11 | 12 | $ git clone https://github.com/gabime/spdlog.git 13 | $ cd spdlog && mkdir build && cd build 14 | $ cmake .. && make -j 15 | 16 | cd "$dir" || exit -------------------------------------------------------------------------------- /prerequisites/libraries/zfp/install_zfp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #============================================================================== 4 | :' 5 | * Copyright (C) 2021 by Brightskies inc 6 | * 7 | * This file is part of SeismicToolbox. 8 | * 9 | * SeismicToolbox is free software: you can redistribute it and/or modify it 10 | * under the terms of the GNU Lesser General Public License as published 11 | * by the Free Software Foundation, either version 3 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * SeismicToolbox is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with GEDLIB. If not, see . 21 | ' 22 | #============================================================================== 23 | 24 | echo "ZFP download script assumes you have sudo access..." 25 | 26 | # Save PWD to return back to it at the end. 27 | dir="$(pwd)" 28 | 29 | # Create directory for installations. 30 | cd ~ || exit 31 | if [ ! -d "hpclibs" ]; then 32 | mkdir hpclibs && cd hpclibs || exit 33 | fi 34 | 35 | # Download 36 | git clone https://github.com/LLNL/zfp.git 37 | cd zfp || exit 38 | make 39 | 40 | # Return to PWD. 41 | cd "$dir" || exit 42 | -------------------------------------------------------------------------------- /prerequisites/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #============================================================================== 4 | :' 5 | * Copyright (C) 2021 by Brightskies inc 6 | * 7 | * This file is part of SeismicToolbox. 8 | * 9 | * SeismicToolbox is free software: you can redistribute it and/or modify it 10 | * under the terms of the GNU Lesser General Public License as published 11 | * by the Free Software Foundation, either version 3 of the License, or 12 | * (at your option) any later version. 13 | * 14 | * SeismicToolbox is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | * GNU Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with GEDLIB. If not, see . 21 | ' 22 | #============================================================================== 23 | 24 | echo "This script assumes you have sudo access..." 25 | 26 | echo "This script shall ease the process of a complete installation of needed frameworks and data" 27 | 28 | # Libraries 29 | ./libraries/oneapi/install_oneapi_base_kit.sh 30 | ./libraries/oneapi/install_oneapi_hpc_kit.sh 31 | ./libraries/opencv/install_opencv_apt.sh 32 | ./libraries/zfp/install_zfp.sh 33 | ./libraries/boost/install_boost_1.64.sh 34 | 35 | # Data 36 | ./data-download/download_bp_iso_data.sh 37 | 38 | cd .. 39 | git submodule update --init --force 40 | -------------------------------------------------------------------------------- /scripts/compare_csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightskiesinc/Reverse_Time_Migration/587300264576ab91c98f9148534e0d2c7f5ee9cf/scripts/compare_csv -------------------------------------------------------------------------------- /scripts/tests/compare_tech.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./config.sh -t omp -i on 4 | ./clean_build.sh 5 | ./bin/Engine -w ./results_omp 6 | 7 | ./config.sh -t dpc -i on 8 | ./clean_build.sh 9 | ./bin/Engine -w ./results_dpc_cpu -p ./data/computation_parameters_dpc_cpu.json 10 | ./bin/Engine -w ./results_dpc_gpu -p ./data/computation_parameters_dpc_gen9.json 11 | 12 | cd bin/ 13 | make compare_csv 14 | cd ../ 15 | 16 | step=200 17 | max_nt=14400 18 | mkdir comparison_results 19 | mkdir comparison_results/comp_forward 20 | mkdir comparison_results/comp_reverse 21 | mkdir comparison_results/comp_backward 22 | mkdir comparison_results/comp_vel 23 | mkdir comparison_results/comp_trace 24 | mkdir comparison_results/comp_mig 25 | for j in results_omp results_dpc_cpu results_dpc_gpu; do 26 | found_match=0 27 | for k in results_omp results_dpc_cpu results_dpc_gpu; do 28 | if [ $k != $j ] && [ $found_match == 1 ]; then 29 | ./bin/utils/compare_csv ./$k/csv/velocity.csv ./$j/csv/velocity.csv >comparison_results/comp_vel/$j-$k-vel.txt 30 | ./bin/utils/compare_csv ./$k/csv/traces/trace_0.csv ./$j/csv/traces/trace_0.csv >comparison_results/comp_trace/$j-$k-trace.txt 31 | ./bin/utils/compare_csv ./$k/csv/migration.csv ./$j/csv/migration.csv >comparison_results/comp_mig/$j-$k-mig.txt 32 | for i in forward backward reverse; do 33 | ./bin/utils/compare_csv $step $max_nt ./$k/csv/$i/ ./$j/csv/$i/ $i >comparison_results/comp_$i/$j-$k-$i.txt 34 | done 35 | elif [ $k == $j ]; then 36 | found_match=1 37 | fi 38 | done 39 | done 40 | -------------------------------------------------------------------------------- /scripts/tests/scalability_test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #to run the script give it the number of cores 4 | if [[ $# -eq 0 ]]; then 5 | echo 'To use this script you will need to give it 1 argument...' 6 | echo 'The argument should specify the maximum number of cores/threads to create' 7 | exit 0 8 | fi 9 | rm -f ../results/full_time_results.txt 10 | touch ../results/full_time_results.txt 11 | echo "threads,\treal,\tuser,\tsystem" >../results/full_time_results.txt 12 | for ((i = 1; i <= $1; i++)); do 13 | echo "Running with $i threads" 14 | sed -i "s/thread-number=[0-9]\+/thread-number=$i/" ../data/computation_parameters.txt 15 | /usr/bin/time -ao ../results/full_time_results.txt -f "$i,\t%E,\t%U,\t%S" ../bin/acoustic_engine 16 | done 17 | -------------------------------------------------------------------------------- /scripts/tests/snapshot_test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd .. 4 | rm -rf ./aps 5 | rm -f ./aps* 6 | 7 | # Application Performance Snapshot launches the application and runs the data collection. 8 | aps ./bin/Engine 9 | -------------------------------------------------------------------------------- /src/agents/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(STBX-SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/NormalAgent.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/StaticServerlessAgent.cpp 23 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/StaticServerAgent.cpp 24 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/DynamicServerlessAgent.cpp 25 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/DynamicServerAgent.cpp 26 | 27 | ${STBX-SOURCES} 28 | PARENT_SCOPE 29 | ) -------------------------------------------------------------------------------- /src/parsers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(STBX-SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/ArgumentsParser.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/Parser.cpp 23 | 24 | ${STBX-SOURCES} 25 | PARENT_SCOPE 26 | ) -------------------------------------------------------------------------------- /src/writers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(STBX-SOURCES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/concrete/NormalWriter.cpp 22 | 23 | ${STBX-SOURCES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /src/writers/concrete/NormalWriter.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | using namespace std; 23 | using namespace stbx::writers; 24 | using namespace operations::utils::filters; 25 | using namespace operations::utils::io; 26 | 27 | void 28 | NormalWriter::SpecifyRawMigration() { 29 | mRawMigration = mpMigrationData->GetResultAt(0)->GetData(); 30 | } 31 | 32 | void 33 | NormalWriter::PostProcess() { 34 | 35 | } 36 | -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | add_definitions(-DSTBX_TEST_DATA_PATH="${CMAKE_CURRENT_SOURCE_DIR}/test-data") 20 | 21 | set(STBX-TESTFILES test_main.cpp) 22 | 23 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/test-utils/include) 24 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test-utils/src) 25 | 26 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/agents) 27 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/generators) 28 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/parsers) 29 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/writers) 30 | 31 | 32 | enable_testing() 33 | add_executable(seismic-toolbox-tests ${STBX-TESTFILES}) 34 | target_link_libraries(seismic-toolbox-tests SEISMIC-TOOLBOX) -------------------------------------------------------------------------------- /tests/README.md: -------------------------------------------------------------------------------- 1 | # Tests Subdirectory 2 | 3 | This contains all the tests for Seismic Toolbox. 4 | 5 | It follows the same file structure explained in the ```README.md``` in the ```include``` directory. 6 | -------------------------------------------------------------------------------- /tests/agents/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(STBX-TESTFILES ${STBX-TESTFILES} PARENT_SCOPE) -------------------------------------------------------------------------------- /tests/generators/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(STBX-TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/TestGenerator.cpp 22 | ${CMAKE_CURRENT_SOURCE_DIR}/primitive/TestComponentsGenerator.cpp 23 | ${CMAKE_CURRENT_SOURCE_DIR}/primitive/TestComputationParametersGetter.cpp 24 | ${CMAKE_CURRENT_SOURCE_DIR}/primitive/TestConfigurationsGenerator.cpp 25 | 26 | ${STBX-TESTFILES} 27 | PARENT_SCOPE) 28 | 29 | -------------------------------------------------------------------------------- /tests/parsers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(STBX-TESTFILES 20 | ${CMAKE_CURRENT_SOURCE_DIR}/TestParser.cpp 21 | ${STBX-TESTFILES} 22 | PARENT_SCOPE) -------------------------------------------------------------------------------- /tests/test-data/workloads/callback_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "callbacks": { 3 | "su": { 4 | "enable": true, 5 | "show-each": 200, 6 | "little-endian": false 7 | }, 8 | "csv": { 9 | "enable": true, 10 | "show-each": 200 11 | }, 12 | "image": { 13 | "enable": true, 14 | "show-each": 200, 15 | "percentile": 98.5 16 | }, 17 | "norm": { 18 | "enable": true, 19 | "show-each": 200 20 | }, 21 | "bin": { 22 | "enable": true, 23 | "show-each": 200 24 | }, 25 | "segy": { 26 | "enable": true, 27 | "show-each": 200 28 | }, 29 | "writers": { 30 | "migration": { 31 | "enable": true 32 | }, 33 | "velocity": { 34 | "enable": true 35 | }, 36 | "traces-raw": { 37 | "enable": true 38 | }, 39 | "traces-preprocessed": { 40 | "enable": true 41 | }, 42 | "re-extended-velocity": { 43 | "enable": true 44 | }, 45 | "each-stacked-shot": { 46 | "enable": true 47 | }, 48 | "single-shot-correlation": { 49 | "enable": true 50 | }, 51 | "backward": { 52 | "enable": true 53 | }, 54 | "forward": { 55 | "enable": true 56 | }, 57 | "reverse": { 58 | "enable": true 59 | } 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /tests/test-data/workloads/computation_parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "computation-parameters": { 3 | "stencil-order": 8, 4 | "boundary-length": 20, 5 | "source-frequency": 20, 6 | "isotropic-radius": 5, 7 | "dt-relax": 0.9, 8 | "algorithm": "cpu", 9 | "device": "none", 10 | "cache-blocking": { 11 | "block-x": 5500, 12 | "block-z": 55, 13 | "block-y": 1 14 | }, 15 | "window": { 16 | "enable": true, 17 | "left": 250, 18 | "right": 250, 19 | "depth": 500, 20 | "front": 0, 21 | "back": 0 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /tests/test-data/workloads/engine_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "traces": { 3 | "min": 601, 4 | "max": 601, 5 | "sort-type": "CSR", 6 | "paths": [ 7 | "data/iso/shots/shots0601_0800.segy" 8 | ] 9 | }, 10 | "models": { 11 | "velocity": "data/iso/params/vel_z6.25m_x12.5m_exact.segy" 12 | }, 13 | "wave": { 14 | "physics": "acoustic", 15 | "approximation": "isotropic", 16 | "equation-order": "first", 17 | "grid-sampling": "uniform" 18 | }, 19 | "components": { 20 | "boundary-manager": { 21 | "type": "none", 22 | "properties": { 23 | "use-top-layer": false 24 | } 25 | }, 26 | "migration-accommodator": { 27 | "type": "cross-correlation", 28 | "properties": { 29 | "compensation": "no" 30 | } 31 | }, 32 | "forward-collector": { 33 | "type": "three" 34 | }, 35 | "trace-manager": { 36 | "type": "segy", 37 | "properties": { 38 | "shot-stride": 2 39 | } 40 | }, 41 | "source-injector": { 42 | "type": "ricker" 43 | }, 44 | "model-handler": { 45 | "type": "segy" 46 | } 47 | }, 48 | "interpolation": { 49 | "type": "none" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /tests/test-data/workloads/pipeline.json: -------------------------------------------------------------------------------- 1 | { 2 | "system": { 3 | "agent": { 4 | "type": "normal" 5 | }, 6 | "writer": { 7 | "type": "normal" 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /tests/test-utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(OPERATIONS-TESTFILES ${OPERATIONS-TESTFILES} PARENT_SCOPE) -------------------------------------------------------------------------------- /tests/test-utils/include/stbx/test-utils/utils.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #ifndef SEISMIC_TOOLBOX_TESTS_TEST_UTILS_UTILS_H 21 | #define SEISMIC_TOOLBOX_TESTS_TEST_UTILS_UTILS_H 22 | 23 | #include 24 | 25 | namespace stbx { 26 | namespace testutils { 27 | template 28 | inline bool instanceof(const T *) { 29 | return std::is_base_of::value; 30 | } 31 | } //namespace testutils 32 | } //namespace stbx 33 | 34 | #endif //SEISMIC_TOOLBOX_TESTS_TEST_UTILS_UTILS_H 35 | -------------------------------------------------------------------------------- /tests/test-utils/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(STBX-TESTFILES 20 | 21 | ${CMAKE_CURRENT_SOURCE_DIR}/utils.cpp 22 | 23 | ${STBX-TESTFILES} 24 | PARENT_SCOPE 25 | ) -------------------------------------------------------------------------------- /tests/test-utils/src/utils.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /tests/test_main.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2021 by Brightskies inc 3 | * 4 | * This file is part of SeismicToolbox. 5 | * 6 | * SeismicToolbox is free software: you can redistribute it and/or modify it 7 | * under the terms of the GNU Lesser General Public License as published 8 | * by the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * SeismicToolbox is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with GEDLIB. If not, see . 18 | */ 19 | 20 | #define CATCH_CONFIG_MAIN 21 | 22 | #include 23 | -------------------------------------------------------------------------------- /tests/writers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2021 by Brightskies inc 2 | # 3 | # This file is part of SeismicToolbox. 4 | # 5 | # SeismicToolbox is free software: you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published 7 | # by the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # SeismicToolbox is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU Lesser General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public 16 | # License along with GEDLIB. If not, see . 17 | 18 | 19 | set(STBX-TESTFILES ${STBX-TESTFILES} PARENT_SCOPE) -------------------------------------------------------------------------------- /tools/gen/meta_data.json: -------------------------------------------------------------------------------- 1 | { 2 | "model-name": "velocity", 3 | "is-traces": false, 4 | "percentile": 98.5, 5 | "grid-size": { 6 | "nx": 500, 7 | "ny": 1, 8 | "nz": 500, 9 | "nt": 1 10 | }, 11 | "cell-dimension": { 12 | "dx": 6.25, 13 | "dy": 0, 14 | "dz": 6.25, 15 | "dt": 0.005 16 | }, 17 | "properties": { 18 | "value-range": { 19 | "min": 2, 20 | "max": 32 21 | }, 22 | "layers": { 23 | "enable": true, 24 | "count": 3, 25 | "type": "sharp" 26 | }, 27 | "cracks": { 28 | "enable": true, 29 | "count": 1 30 | }, 31 | "salt-bodies": { 32 | "enable": false, 33 | "count": 4, 34 | "type": "random", 35 | "width": "narrow" 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /workloads/bp_model/computation_parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "computation-parameters": { 3 | "stencil-order": 8, 4 | "boundary-length": 20, 5 | "source-frequency": 10, 6 | "isotropic-radius": 5, 7 | "dt-relax": 0.9, 8 | "algorithm": "cpu", 9 | "device": "none", 10 | "cache-blocking": { 11 | "block-x": 5500, 12 | "block-z": 55, 13 | "block-y": 1 14 | }, 15 | "window": { 16 | "enable": true, 17 | "left": 1300, 18 | "right": 600, 19 | "depth": 0, 20 | "front": 0, 21 | "back": 0 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /workloads/bp_model/engine_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "traces": { 3 | "min": 601, 4 | "max": 602, 5 | "sort-type": "CSR", 6 | "paths": [ 7 | "data/iso/shots/shots0601_0800.segy" 8 | ] 9 | }, 10 | "models": { 11 | "velocity": "data/iso/params/vel_z6.25m_x12.5m_exact.segy", 12 | "density": "data/iso/params/density_z6.25m_x12.5m.segy" 13 | }, 14 | "wave": { 15 | "physics": "acoustic", 16 | "approximation": "isotropic", 17 | "equation-order": "second", 18 | "grid-sampling": "uniform" 19 | }, 20 | "components": { 21 | "boundary-manager": { 22 | "type": "random", 23 | "properties": { 24 | "use-top-layer": false, 25 | "grain-side-length": 200 26 | } 27 | }, 28 | "migration-accommodator": { 29 | "type": "cross-correlation", 30 | "properties": { 31 | "compensation": "none" 32 | } 33 | }, 34 | "forward-collector": { 35 | "type": "three", 36 | "properties": { 37 | "boundary-saving": true 38 | } 39 | }, 40 | "trace-manager": { 41 | "properties": { 42 | "type": "segy", 43 | "shot-stride": 2, 44 | "interpolation": "none" 45 | } 46 | }, 47 | "source-injector": { 48 | "type": "ricker", 49 | "properties": { 50 | "max-freq-amplitude-percentage": 0.05 51 | } 52 | }, 53 | "model-handler": { 54 | "properties": { 55 | "type": "segy" 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /workloads/bp_model/system_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "system": { 3 | "algorithm": { 4 | "type": "rtm" 5 | }, 6 | "agent": { 7 | "type": "normal" 8 | }, 9 | "writer": { 10 | "type": "normal" 11 | }, 12 | "timer": { 13 | "properties": { 14 | "precision": "milli" 15 | } 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /workloads/synthetic_model/computation_parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "computation-parameters": { 3 | "stencil-order": 16, 4 | "boundary-length": 20, 5 | "source-frequency": 10, 6 | "isotropic-radius": 5, 7 | "dt-relax": 0.9, 8 | "algorithm": "cpu", 9 | "device": "CPU", 10 | "cache-blocking": { 11 | "block-x": 128, 12 | "block-z": 16, 13 | "block-y": 1 14 | }, 15 | "window": { 16 | "enable": false, 17 | "left": 0, 18 | "right": 0, 19 | "depth": 0, 20 | "front": 0, 21 | "back": 0 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /workloads/synthetic_model/modelling_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "traces": { 3 | "min": 0, 4 | "max": 100, 5 | "sort-type": "CSR", 6 | "paths": [ 7 | "workloads/synthetic_model/synthetic_traces.json" 8 | ] 9 | }, 10 | "models": { 11 | "velocity": "workloads/synthetic_model/synthetic_velocity.json" 12 | }, 13 | "wave": { 14 | "physics": "acoustic", 15 | "approximation": "isotropic", 16 | "equation-order": "second", 17 | "grid-sampling": "uniform" 18 | }, 19 | "components": { 20 | "boundary-manager": { 21 | "type": "cpml", 22 | "properties": { 23 | "use-top-layer": true 24 | } 25 | }, 26 | "trace-manager": { 27 | "properties": { 28 | "type": "json", 29 | "shot-stride": 1, 30 | "interpolation": "none", 31 | "header-only": true 32 | } 33 | }, 34 | "trace-writer": { 35 | "properties": { 36 | "type": "segy", 37 | "output-file": "data/synthetic_model_traces" 38 | } 39 | }, 40 | "source-injector": { 41 | "type": "ricker", 42 | "properties": { 43 | "max-freq-amplitude-percentage": 0.05 44 | } 45 | }, 46 | "model-handler": { 47 | "properties": { 48 | "type": "json" 49 | } 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /workloads/synthetic_model/synthetic_delta.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta-data": { 3 | "type": "parameter", 4 | "grid-size": { 5 | "nx": 500, 6 | "ny": 1, 7 | "nz": 500 8 | }, 9 | "cell-dimension": { 10 | "dx": 6.25, 11 | "dy": 6.25, 12 | "dz": 6.25 13 | }, 14 | "origin-coordinates": { 15 | "x": 100.25, 16 | "y": 300 17 | } 18 | }, 19 | "data": { 20 | "reflector": [ 21 | { 22 | "type": "plane", 23 | "value": { 24 | "before": 0, 25 | "after": 0.1 26 | }, 27 | "origin": { 28 | "x-index": 0, 29 | "y-index": 0, 30 | "z-index": 99 31 | }, 32 | "slope": { 33 | "x-angle": 0, 34 | "y-angle": 0 35 | } 36 | }, 37 | { 38 | "type": "plane", 39 | "value": { 40 | "before": 0.1, 41 | "after": 0.1 42 | }, 43 | "origin": { 44 | "x-index": 0, 45 | "y-index": 0, 46 | "z-index": 299 47 | }, 48 | "slope": { 49 | "x-angle": 0, 50 | "y-angle": 0 51 | } 52 | }, 53 | { 54 | "type": "plane", 55 | "value": { 56 | "before": 0.1, 57 | "after": 0 58 | }, 59 | "origin": { 60 | "x-index": 0, 61 | "y-index": 0, 62 | "z-index": 399 63 | }, 64 | "slope": { 65 | "x-angle": 0, 66 | "y-angle": 0 67 | } 68 | } 69 | ] 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /workloads/synthetic_model/synthetic_epsilon.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta-data": { 3 | "type": "parameter", 4 | "grid-size": { 5 | "nx": 500, 6 | "ny": 1, 7 | "nz": 500 8 | }, 9 | "cell-dimension": { 10 | "dx": 6.25, 11 | "dy": 6.25, 12 | "dz": 6.25 13 | }, 14 | "origin-coordinates": { 15 | "x": 100.25, 16 | "y": 300 17 | } 18 | }, 19 | "data": { 20 | "reflector": [ 21 | { 22 | "type": "plane", 23 | "value": { 24 | "before": 0, 25 | "after": 0.2 26 | }, 27 | "origin": { 28 | "x-index": 0, 29 | "y-index": 0, 30 | "z-index": 99 31 | }, 32 | "slope": { 33 | "x-angle": 0, 34 | "y-angle": 0 35 | } 36 | }, 37 | { 38 | "type": "plane", 39 | "value": { 40 | "before": 0.2, 41 | "after": 0.2 42 | }, 43 | "origin": { 44 | "x-index": 0, 45 | "y-index": 0, 46 | "z-index": 299 47 | }, 48 | "slope": { 49 | "x-angle": 0, 50 | "y-angle": 0 51 | } 52 | }, 53 | { 54 | "type": "plane", 55 | "value": { 56 | "before": 0.2, 57 | "after": 0 58 | }, 59 | "origin": { 60 | "x-index": 0, 61 | "y-index": 0, 62 | "z-index": 399 63 | }, 64 | "slope": { 65 | "x-angle": 0, 66 | "y-angle": 0 67 | } 68 | } 69 | ] 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /workloads/synthetic_model/synthetic_theta.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta-data": { 3 | "type": "parameter", 4 | "grid-size": { 5 | "nx": 500, 6 | "ny": 1, 7 | "nz": 500 8 | }, 9 | "cell-dimension": { 10 | "dx": 6.25, 11 | "dy": 6.25, 12 | "dz": 6.25 13 | }, 14 | "origin-coordinates": { 15 | "x": 100.25, 16 | "y": 300 17 | } 18 | }, 19 | "data": { 20 | "reflector": [ 21 | { 22 | "type": "plane", 23 | "value": { 24 | "before": 0, 25 | "after": 60 26 | }, 27 | "origin": { 28 | "x-index": 0, 29 | "y-index": 0, 30 | "z-index": 99 31 | }, 32 | "slope": { 33 | "x-angle": 0, 34 | "y-angle": 0 35 | } 36 | }, 37 | { 38 | "type": "plane", 39 | "value": { 40 | "before": 60, 41 | "after": -60 42 | }, 43 | "origin": { 44 | "x-index": 0, 45 | "y-index": 0, 46 | "z-index": 299 47 | }, 48 | "slope": { 49 | "x-angle": 0, 50 | "y-angle": 0 51 | } 52 | }, 53 | { 54 | "type": "plane", 55 | "value": { 56 | "before": -60, 57 | "after": 0 58 | }, 59 | "origin": { 60 | "x-index": 0, 61 | "y-index": 0, 62 | "z-index": 399 63 | }, 64 | "slope": { 65 | "x-angle": 0, 66 | "y-angle": 0 67 | } 68 | } 69 | ] 70 | } 71 | } -------------------------------------------------------------------------------- /workloads/synthetic_model/synthetic_traces.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta-data": { 3 | "type": "traces", 4 | "source": { 5 | "start": { 6 | "x-index": 0, 7 | "y-index": 0, 8 | "z-index": 0 9 | }, 10 | "end": { 11 | "x-index": 449, 12 | "y-index": 0, 13 | "z-index": 0 14 | }, 15 | "increment": { 16 | "x-index": 4, 17 | "y-index": 0, 18 | "z-index": 0 19 | } 20 | }, 21 | "source-relative-receivers": { 22 | "start": { 23 | "x-offset": 50, 24 | "y-offset": 0, 25 | "z-offset": 0 26 | }, 27 | "number": { 28 | "x": 100, 29 | "y": 0, 30 | "z": 0 31 | }, 32 | "increment": { 33 | "x-index": 1, 34 | "y-index": 0, 35 | "z-index": 0 36 | } 37 | }, 38 | "time-sampling": 0.01, 39 | "sample-number": 400, 40 | "cell-dimension": { 41 | "dx": 6.25, 42 | "dy": 0 43 | }, 44 | "origin-coordinates": { 45 | "x": 100.25, 46 | "y": 300 47 | } 48 | }, 49 | "data": { 50 | } 51 | } -------------------------------------------------------------------------------- /workloads/synthetic_model/synthetic_velocity.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta-data": { 3 | "type": "parameter", 4 | "grid-size": { 5 | "nx": 500, 6 | "ny": 1, 7 | "nz": 500 8 | }, 9 | "cell-dimension": { 10 | "dx": 6.25, 11 | "dy": 6.25, 12 | "dz": 6.25 13 | }, 14 | "origin-coordinates": { 15 | "x": 100.25, 16 | "y": 300 17 | } 18 | }, 19 | "data": { 20 | "reflector": [ 21 | { 22 | "type": "plane", 23 | "value": { 24 | "before": 1500, 25 | "after": 2000 26 | }, 27 | "origin": { 28 | "x-index": 0, 29 | "y-index": 0, 30 | "z-index": 99 31 | }, 32 | "slope": { 33 | "x-angle": 0, 34 | "y-angle": 0 35 | } 36 | }, 37 | { 38 | "type": "plane", 39 | "value": { 40 | "before": 2000, 41 | "after": 3000 42 | }, 43 | "origin": { 44 | "x-index": 0, 45 | "y-index": 0, 46 | "z-index": 299 47 | }, 48 | "slope": { 49 | "x-angle": 0, 50 | "y-angle": 0 51 | } 52 | }, 53 | { 54 | "type": "plane", 55 | "value": { 56 | "before": 3000, 57 | "after": 4000 58 | }, 59 | "origin": { 60 | "x-index": 0, 61 | "y-index": 0, 62 | "z-index": 399 63 | }, 64 | "slope": { 65 | "x-angle": 0, 66 | "y-angle": 0 67 | } 68 | } 69 | ] 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /workloads/synthetic_model/system_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "system": { 3 | "algorithm": { 4 | "type": "rtm" 5 | }, 6 | "agent": { 7 | "type": "normal" 8 | }, 9 | "writer": { 10 | "type": "normal" 11 | }, 12 | "timer": { 13 | "properties": { 14 | "precision": "milli" 15 | } 16 | } 17 | } 18 | } --------------------------------------------------------------------------------