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 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: B2-M
  • License: bsd-3-clause
  • Language: MATLAB
  • Default Branch: main
  • Size: 289 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Created about 1 year ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

TABLE OF CONTENTS

  1. TABLE OF CONTENTS
  2. CutElementIntegration
    1. Description
    2. Publications
  3. Getting started
    1. Git
    2. Matlab
    3. Unit tests
    4. Codes included
  4. License
  5. Acknowledge

CutElementIntegration

Description

This repo provides benchmark test for routines that integrate over elements cut by an arbitrary interface. The interface may be defined implicitly by a level set function or parametrically by a NURBS curve. The included codes for integrating over cut elements are either provided as a static version in a folder or as a submodule. A list of provided codes can be seen in release_files.txt, with a respective README*.md file in the folder \codes. The technical details to set up the framework are shown in Getting started

Getting started

Git

Note for Windows users: getting the submodules may fail when the passphrase is not remembered. Try running start-ssh-agent before calling the following lines in the same terminal

git clone git@github.com:B2-M/CutElementIntegration.git git submodule add https://gitlab.lrz.de/cie_sam_public/fcmlab.git codes/fcmlab/fcmlab

or

git clone git@github.com:B2-M/CutElementIntegration.git git submodule update --progress --init

Not all submodules might be available to all users due to individual restrictions. Therefore, the following command could be used alternatively which explicitly updates certain codes: git.exe submodule update --progress --init -- "codes/fcmlab/fcmlab" "codes/algoim/matlabalgoimwrapper" "codes/quahog/quahog"

The --progress option prints additional information regarding the updating progress.

In order to initialize all codes properly, it is recommended to run init_submodules.sh. Afterwards, the intialized submodules can be updated recursively with Git.

Matlab

Within matlab - navigate to the CutElementIntegration folder - run StartUpCall to add all mandatory paths and check the accessibility of the different integrators (provided in the \codes folder) StartUpCall

See the \codes folder for adding integration tools and the \examples folder for setting up test cases.

To delete all stored results locally in the machine call

Unit tests

To run all unit tests call: runExampleTests

To run a specific test for all integrators run e.g., testsuit = testExampleChanges_AreaComputation2D; run(testsuit,"checkForChanges_example_circle_1");

To run a specific test for a specific integrator run e.g., testsuit = testExampleChanges_AreaComputation2D; testsuit.integrator_names={integrator_name}; run(testsuit,"checkForChanges_example_circle_1");

When you want to update the reference solutions of all tests for an integrator (e.g. because you made some improvements) call updateExampleTestsResultsRef( integrator_name )

If two or more references for one integrator for one test are stored, the test fails.

Structure

Every examples subfolder has a testExampleChanges_*.m class that provides - the runTestCoverage function that checks if all examples in the subfolder are having a test, and - checkForChanges_* functions that make a test run of an example

The reference solutions are stored in the corresponding subfolders results_ref/. Per test case and integrator there shall be only one reference solution within these folders.

The runExampleTests.m script is the main function that runs all testExampleChanges_*.m classes.

Warning

The unit tests only compare the current run with previously obtained results. They cannot assess the quality of the results. This is the responsibility of the user.

Codes included

The included codes for integrating over cut elements are collected in the codes/ folder. They are either provided as a static version in a folder or as a submodule. Please check the README files in the corresponding subfolders for integrator-specific details.

License

The test environment the 3-Clause BSD License (https://opensource.org/license/bsd-3-clause).

Further, the test environment relies on the Octave NURBS package under the GNU General Public License.

For the licenses of the integration codes, see the license files in the corresponding subfolders.

Acknowledgments

The work is supported by the joint DFG/FWF Collaborative Research Centre CREATOR (DFG: Project-ID 492661287/TRR 361; FWF: 10.55776/F90) at TU Darmstadt, TU Graz and JKU Linz.

Owner

  • Login: B2-M
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: CutElementIntegration
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Benjamin 
    family-names: Marussig
    orcid: 'https://orcid.org/0000-0001-6076-4326'
  - given-names: Michael
    family-names: Loibl
    orcid: 'https://orcid.org/0009-0006-2146-3727'
  - given-names: Teoman
    family-names: Toprak
    orcid: 'https://orcid.org/0009-0005-8817-5044'
  - given-names: Florian
    family-names: Kummer
    orcid: 'https://orcid.org/0000-0002-2827-7576'
  - given-names: Guilherme H.
    family-names: Teixeira
    orcid: 'https://orcid.org/0000-0003-3857-5291'

GitHub Events

Total
  • Release event: 5
  • Watch event: 1
  • Push event: 5
  • Create event: 4
Last Year
  • Release event: 5
  • Watch event: 1
  • Push event: 5
  • Create event: 4

Dependencies

nurbs-1.4.3/DESCRIPTION cran
  • octave >= 5.1 depends