goat

Geometrical optics application tool

https://github.com/gruni55/goat

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Geometrical optics application tool

Basic Info
  • Host: GitHub
  • Owner: gruni55
  • License: bsd-3-clause
  • Language: C++
  • Default Branch: main
  • Size: 19.2 MB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.txt

GOAT - Geometrical Optics Application Tool
==========================================

Author: Thomas Weigel (C) 2021
License: BSD-3-Clause

GOAT is a modular, scene-based C++ library for the simulation of electric fields and intensity distributions using geometrical optics, including explicit phase calculation for the simulation of interference phenomena.

Homepage / Source code:
    https://github.com/gruni55/goat

Online API documentation (Doxygen):
    https://gruni55.github.io/goat/html/

Scientific reference:
    Thomas Weigel, Gustav Schweiger, and Andreas Ostendorf,
    "GOAT: a multipurpose optical simulation tool,"
    J. Opt. Soc. Am. B 39, 2061-2065 (2022)
    https://doi.org/10.1364/JOSAB.457951

-------------------------------------------------------------------------------

KEY FEATURES

- Scene-based, modular architecture (sources, objects, detectors)
- Explicit phase calculation for interference effects (no diffraction)
- Efficient geometry handling, including octree and STL file import
- Multiple ray types: line rays and tube rays
- Cross-platform, open source (BSD-3-Clause License)
- Extensive Doxygen API documentation

-------------------------------------------------------------------------------

INSTALLATION

REQUIREMENTS
    - CMake (https://cmake.org/)
    - C++17 compatible compiler (GCC, clang, or Visual Studio)
    - TinyXML-2 (included in repository for XML support)

LINUX / macOS
    1. Open a terminal and go to the GOAT directory.
    2. Configure the build:
         cmake .
    3. Compile:
         make

WINDOWS (Visual Studio 2019 or newer)
    1. Open the GOAT directory with Visual Studio (with CMake support)
       OR open a command prompt in the GOAT directory and run:
         cmake .
    Note: Replace '/' with '\' in all folder paths for Windows.

Resulting libraries:
    - goat_maths.lib   (mathematical basics)
    - goat_raytracing.lib   (ray tracing functions and classes)

Libraries can be found in /lib/Release or /lib/Debug depending on build type.
Header files are in the /maths and /raytracing directories.

-------------------------------------------------------------------------------

EXAMPLES

You will find several example programs in the /examples directory:

  /examples/ot         Optical trap examples (single sphere, counterpropagating trap)
  /examples/layers     Simulation of transmission through thin tilted layers
  /examples/paths      Ray tracing from sources, STL object import, saving ray paths
  /examples/axicon     Gaussian beam and axicon example (SRF file required)

Please copy any required SRF files into the folder where the binary is located before running the examples.

Output files will be written to the same directory as the executable.
Visual Studio default output folders are: 
  goat-main/out/build/x64-Debug/bin
  goat-main/out/build/x64-Release/bin

-------------------------------------------------------------------------------

DOCUMENTATION

A complete API documentation generated with Doxygen is available:

    - Online: https://gruni55.github.io/goat/html/
    - **Locally:** in the `/docs` directory of this repository

To generate or update the documentation yourself, run:
    doxygen Doxyfile

-------------------------------------------------------------------------------

CONTACT AND SUPPORT

- For questions, bug reports, or feature requests, please use the GitHub Issues page.
- More information can be found in the online documentation and in the `/docs` folder.

-------------------------------------------------------------------------------

CITATION

If you use GOAT in your work, please cite:

    Thomas Weigel, Gustav Schweiger, and Andreas Ostendorf,
    "GOAT: a multipurpose optical simulation tool,"
    J. Opt. Soc. Am. B 39, 2061-2065 (2022).
    https://doi.org/10.1364/JOSAB.457951

-------------------------------------------------------------------------------

Citation (CITATION.cff)

cff-version: 1.0.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Weigel"
  given-names: "Thomas"
  orcid: " https://orcid.org/0000-0001-6283-8763"
title: "GOAT"
version: 1.0.0
doi: 10.5281/zenodo.1234
date-released: 2022-01-11
url: "https://github.com/gruni55/goat"

GitHub Events

Total
  • Watch event: 2
  • Push event: 87
  • Pull request event: 1
  • Create event: 1
Last Year
  • Watch event: 2
  • Push event: 87
  • Pull request event: 1
  • Create event: 1