GithubHelp home page GithubHelp logo

elykwilliams / libsc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cburstedde/libsc

0.0 0.0 0.0 8.89 MB

The "sc" auxiliary library

Home Page: www.p4est.org/

License: GNU Lesser General Public License v2.1

Shell 0.73% JavaScript 0.06% Perl 0.65% C 90.10% Makefile 1.00% CMake 2.06% M4 5.40%

libsc's Introduction

# The SC Library

This is the `README` file for `libsc`.

The SC Library provides support for parallel scientific applications.

Copyright (C) 2010 The University of Texas System
Additional copyright (C) 2011 individual authors

`libsc` is written by Carsten Burstedde, Lucas C. Wilcox, Tobin Isaac, and
others.  `libsc` is free software released under the GNU Lesser General
Public Licence version 2.1 (or, at your option, any later version).

Please see doc/release_notes.txt for latest updates.

The official web page for source code and documentation is
[p4est.org](https://www.p4est.org/).
Please send bug reports and ideas for contribution to `[email protected]`.
You are also welcome to post issues on
[github](https://www.github.com/cburstedde/libsc.git).
Please see the `CONTRIBUTING` file and
our [coding standards](doc/coding_standards.txt) for details.

## Building `libsc`

The build instructions for `p4est` also apply to standalone builds of `libsc`.

### Autotools

The autotools build chain is fully supported.

In a fresh checkout, you may run `./bootstrap` to create the `configure`
script.  Calling `make` will regenerate the tools configuration as needed.
Only in rare cases `./bootstrap` will have to be run again.  The script depends
on existing `autoconf`, `automake`, `libtool` and `pkg-config` tools.

Calling `bootstrap` is *not* required for unpacked `tar` archives, or after
pulling fresh code.

We recommend running `configure` with a relative path from an empty build
directory.  Try

    configure --help

for options and switches.  For development with MPI:

    cd empty/build/directory
    ../relative/path/to/configure --enable-mpi --enable-debug \
        CFLAGS="-O0 -g -Wall -Wextra -Wno-unused-parameter"
    make -j8 V=0

To run tests in parallel, run

    make -j2 check V=0

and to pack a distribution tarball, call `bootstrap` and

    mkdir -p build && cd build && ../configure
    make -j3 distcheck V=0

The `V=0` environment variable significantly unclutters console output.
So far, we have not made `V=0` the default.

### CMake

For faster builds that work on Windows as well as MacOS and Linux, and
that are easily usable from other CMake projects, libsc can be built directly,
or used via FetchContent or ExternalProject from other CMake projects.

MPI and OpenMP are enabled by default, and the default build configuration is RelWithDebInfo:

    cmake -B build
    cmake --build build --parallel

To enable JSON via jansson, first install
[jansson CMake project](https://github.com/akheron/jansson), then specify path where you
installed jansson to CMake, say ~/local:

    cmake -B build -Djansson_ROOT=~/local
    cmake --build build --parallel

To disable MPI:

    cmake -B build -Dmpi=no

To disable OpenMP:

    cmake -B build -Dopenmp=no

To compile with debug options:

    cmake -B build -DCMAKE_BUILD_TYPE=Debug

Optionally, run self-tests:

    ctest --test-dir build

Optionally, install `libsc` like:

    cmake -B build -DCMAKE_INSTALL_PREFIX=~/local
    cmake --install build

The optional examples can be built and tested like:

    cmake -S example -B example/build -DSC_ROOT=~/local
    cmake --build example/build
    ctest --test-dir example/build

#### Distribution packages

For developers, source and binary distribution packages are generated
after building `libsc` by:

    cpack --config build/CPackSourceConfig.cmake
    cpack --config build/CPackConfig.cmake

which creates files:

 * `build/package/SC-<version>-Source.zip` containing source code
 * `build/package/SC-<version>-<platform>.zip` containing binary libraries and
    executables suitable for computers of same operating system and compatible
    CPU arch

libsc's People

Contributors

aseyboldt avatar cburstedde avatar cristianomalossi avatar elykwilliams avatar fliegendekeule avatar ghoshgm avatar haghakhani avatar hannesbrandt avatar holke avatar johannrudi avatar lcw avatar lukasdreyer avatar mkirilin avatar pkestene avatar ranocha avatar rdbisme avatar scivision avatar sirduck36 avatar sloede avatar tamiko avatar tim-griesbach avatar tisaac avatar topazus 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.