Code Monkey home page Code Monkey logo

ahf's Introduction

  Implementation of Array Based Half-Facet (AHF) Mesh Data Structure
	                (for simplex meshes only)
                 (c) 08/28/2020, Shawn W. Walker

This code is open source under the BSD license.

DESCRIPTION
========================================================================

This is a C++ implementation of the Array Based Half-Facet (AHF) data structure for unstructured simplicial meshes.  The base class is implemented for *any* dimension through C++ templating.

Source code can be found at:   http://github.com/walkersw/AHF

REMARK: this class uses standard 0-based indexing (C-style).


INSTALLATION AND EXTERNAL LIBRARIES
========================================================================

- Extract the given .zip file.

- You need a C++ compiler.  You can either use MS Visual C++ express edition (in Windows) or the gcc or g++ compiler (in LINUX).  Instructions for both cases are given below.

- AHF now uses the Eigen library found here:  http://eigen.tuxfamily.org/

AHF has been tested with version 3.3.7 of Eigen (probably earlier versions will work).

Therefore, you must *include* the Eigen library when compiling AHF.  Anyone who is willing to use a complex C++ mesh class should be "smart" enough to include an external library.  Nevertheless, I have included some examples below to illustrate.


USAGE
========================================================================

MS Visual C++ (MSVC):
-------------------------

1. See the file "AHF_cmd_example.bat" in the main AHF directory.  It shows how to initialize the MSVC variables and include the AHF source code, as well as the Eigen library.

2. Batch commands are included in the "Unit_Test_src", "Unit_Test_io", and "Demo" sub-directories.

To compile and run the examples, do the following:

Unit Tests: Open a command prompt in the "Unit_Test_src" (or "Unit_Test_io") sub-directory and setup your environment variables and include directories; see the file "AHF_cmd_example.bat" (you will need to modify to suit your setup).

- Next run "MSVC_Compile_Unit_Tests" at the command prompt.
- Then run "MSVC_Run_Unit_Tests" to execute the generated exe's.
- You can run "MSVC_Clean_Unit_Tests" to delete the exe's.
(Note: the unit test files and executables are in sub-dirs of "Unit_Test_src".)

The actual compiling commands can be found in "MSVC_Compile.cmd".

Demos: Open a command prompt in the "Demo" sub-dir and setup your environment variables and include directories as above.

- Next run "MSVC_Compile_Demos" at the command prompt.
- Then run "MSVC_Run_Demos" to execute the generated exe's.
- You can run "MSVC_Clean_Demos" to delete the exe's.
(Note: the demo files and executables are in sub-dirs of "Demo".)


LINUX:
-------------------------

1. See the file "linux_makefile_hdr" in the main AHF directory.  It contains the default compiler options for all the makefile's.  In particular, it contains this line:

EIGEN_DIR=$$HOME/eigen-3.3.7/

which you must modify to fit your installation of the Eigen library.  Nothing else should change.

2. Script files are included in the "Unit_Test_src", "Unit_Test_io", and "Demo" sub-directories.

To compile and run the examples, do the following:

Unit Tests: Open a terminal window in the "Unit_Test_src" (or "Unit_Test_io") sub-directory (your environment variables should already be set up).

- Compile: run "make" at the bash prompt.
- Run: run "./Linux_Run_Unit_Tests.sh" to execute the object files. (make sure you have execute permissions enabled for this script file.)
- You can run "./Linux_Clean_Unit_Tests.sh" to delete the object files.
(Note: the unit test files and object files are in sub-dirs of "Unit_Test_src".)

The actual compiling commands can be found in "makefile" and "linux_makefile_hdr".

Demos: Open a terminal window in the "Demo" sub-directory.

- Compile: run "make" at the bash prompt.
- Run: run "./Linux_Run_Demos.sh" to execute the object files. (make sure you have execute permissions enabled for this script file.)
- You can run "./Linux_Clean_Demos.sh" to delete the object files.
(Note: the demo files and executables are in sub-dirs of "Demo".)


COMPATIBILITY NOTES
========================================================================
This code was developed with MS Visual C++ 2015 and g++, using Notepad++.

Tested on these systems:

-- Windows 10, 64-bit

-- LINUX KDE/Ubuntu, 64-bit


BUG REPORTS AND FEEDBACK
========================================================================
Please report any problems and/or bugs to:  [email protected]


ACKNOWLEDGEMENTS
========================================================================

This implementation is based on the paper:

Dyedov, V.; Ray, N.; Einstein, D.; Jiao, X.; Tautges, T.
"AHF: array-based half-facet data structure for mixed-dimensional and non-manifold meshes,"
Engineering with Computers, Springer London, 2015, 31, 389-404

ahf's People

Contributors

walkersw avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.