Skip to content

Commit

Permalink
Release 2.2.3 (#32)
Browse files Browse the repository at this point in the history
* Finish driver test refactor

* Set default field type to 'double'

* Minor updates to minimize data copy

* Refactor and fix field not copied back

* Fix volume integral driver tests

* Fix incorrect smoothing lengths dimension for scatter tests

* Add comments and cleanup tests

* Fix distributed swarm driver tests

* Refactor mesh-swarm-mesh remap

* Inline explicitly specialized constructors

* Fix buggy particle field and state extension

* Fix particle redistribution + tests

* Fix particle accumulate

* Fix estimator tests

* Use modern random number generation

* Fix simple points search + tests

* Start fixing swarm driver

* Fix search points by cells

* Fix pairs finding

* Fix issue with search points by cells

* Fix particle accumulate

* Update accumulate test

* Fix inconsistent template signatures

* Update part-by-particle tests

* Remove unused variables

* Minor updates in particle redistribution

* Refactor weights

* Refactor swarm app

* Removed unused variable type.

* Initialization fnction for one component is used.

* Update swarm compare

* Removed temporarily introduced convert for Entity_kind.

* Re-generate gold files

* Agressive templating of the remap class.

* Fix missing include and overload confusion

* Fix inverted columns on swarm app

* Expanded the numeric tolerances struct and changed its default to a global variable

* Minor fixes

* Attempt to fix inverted columns in swarm app tests

* Second debug attempt

* Packed velocity components in a vector.

* Fix incorrect assertions

* Packed momentum into a vector.

* Refactored calculation of total momentum.

* Extended comments.

* Fix issues related to random number picking sequence

* Re-generate gold files

* Updating test_singlemat_swept

* Refactor operator

* Add empty field initialization for swarm state

* Enable quick abort on failure

* Remove debug prints

* Fix incorrect line compare in shell test scripts

* Minor cleanup

* Addressing comments

* Updating MomentumRemap.h

* Refactor operator tests

* Fixing sign

* Fix basis traits and tests

* Minor update on operator tests

* Fix for 2D swept face: when taking from neighbors, check that neighboring cell is multi-material

* Updating to the latest Tangram

* Fix operators reference data in tests

* Adding 3D version

* Replace namespaces

* Relocate operator references

* Updating Tangram version in README

* Fix method re-declaration when thrust is disabled.

* Fix in-class initialization failure

* Fix bug in multi-field swarm state

* Fix segmentation fault in multi-field case

* Fix incorrect assertions

* Fix incorrect particle count for gather form tests

* Revert namespace change

* Simplify mesh to swarm state test

* Fix wrong smoothing length for 2D scatter test

* Splitting compute_face_group_moments into 2D and 3D versions

* Changes to swept_face_app to support HAVE_TANGRAM==True

* Changes to test_intersect_swept_face to support HAVE_TANGRAM==True

* Add template on ID type to SearchDirectProduct

SearchDirectProduct changed to SearchDirectProductBase, and template
added to allow for changing the type for the ID used by the search.
This will be very useful for EAP, which needs the ID type to be int64_t
instead of the usual int.

SearchDirectProduct is now a typedef that partially specializes
SearchDirectProductBase to int IDs.

* Fix an include statement.

* Fix return statements.

* Fixing some int -> ID_t things I failed to fix earlier.

* Missed another int -> ID_t.

* Add a test to ensure SearchDirectProductBase works with non-int ID_t.

* Address comments

* Add missing include guards in operator references

* Starting coordinate systems documentation.

* tweak

* Pandoc: first attempt

* Adding image.

* Fix to image.

* Fix to image.

* Fix to image.

* Testing LaTeX math.

* Trying to move image to right location.

* More fussing with equations.

* Removing Markdown version of memo because it's not working right now.

* Not putting in Markdown, now just adding the PDF (after review).

* Expanding coordinate systems documentation and adding a diagram.

* Forgot the attribution information for the image.

* updated fix_mismatch to allow the user to opt out of MPI

* added 2D test for MM Swept remap

* fixed sign error in MM Swept face remap

* added a descriptive comment

* write out HAVE_TANGRAM in portage's autogenerated config file if we compiled with Tangram

* commented reference solution in a test

* Some reformatting.

* Adding table from PDF document, as recommended by Hoby.

* add the cmakedefine HAVE_TANGRAM to tell downstream packages we built with TANGRAM

* omitted layer calculation in fix_mismatch if distributed and no global check

* added 2D test for MM Swept remap

* fixed sign error in MM Swept face remap

* added a descriptive comment

* write out HAVE_TANGRAM in portage's autogenerated config file if we compiled with Tangram

* commented reference solution in a test

* Replace #if with #ifdef for HAVE_TANGRAM

* fixed the layer computation logic so it is consistent with the assert

* fixed parenthesis imbalance

* fixed layer computation logic

* moved compute_layers to its own function and changed asserts to throws to make sure the checks don't get optimized away, all in fix_mismatch.h

* Adding the full documentation, now with LA-UR.

* Add additional constructor for swarm

* Fix descriptive comment

* Fix confusion on number of local particles

* Fix loop index

* Fix missing compile-time guard

* added timer.h to cmakelists

* Change axis_num_cells to num_axis_cells following changes to Wonton.

* Update to head of Wonton.

* Fix abs to std::abs.  How that snuck in, I have no idea.

* removed assert from coredriver.h which requires that nmats>1 for a multi-material remap

* Propogating 2D sign fixes to 3D.

* changed mesh movement and updated gold files

* filter out multi-material ghost cells (since Wonton does not let us choose)

* collect neighbors of only owned cells; leave the collection of neighbors on both owned and ghost nodes

* compute gradient only on owned cells and zero out gradient for the ghosts

* call is_redistribution needed before calling distribution method - it is needed

* Fix multiple definitions of tangram macro

* Fix Wonton

* Fix R3D intersection

* Fix fictive interface reconstructor

* Update wonton hash

* Fix timing app

* Fix mesh swarm mesh app

* Fix Jali

* Update wonton hash

* Fix clipper

* Fix test compare app

* Fix MPI bounding boxes

* Fix intersect clipper

* Fix incomplete type error in clipper

* Fix pairs, pile and operator

* Fix MPI collate

* Fix bounding boxes

* Fix old driver

* Fix core driver

* Fix intersect R3D

* Fix interpolate

* Fix kd-tree

* Fix gradient

* Fix simple mesh app

* Fix flat state wrapper

* Fix intersect R2D

* Fix simple multi-material mesh app

* Fix swarm

* Fix accumulate

* Fix faceted setup

* Fix mesh-swarm-mesh

* Fix momentum remap

* Fix RGMD app

* Fix multimat app

* Fix Jali app

* Fix part-by-part

* Fix swept-face

* Fix accumulate tests

* Fix bounding box test

* Fix drivers tests

* Fix interpolate tests

* Fix tangram intersect tests

* Fix R3D intersect tests

* Fix box intersection

* Fix clipper intersect tests

* Fix search tests

* Fix weight, faceted setup tests

* Fix operator tests

* Fix basis tests

* Fix swarm state tests

* Fix disjoint test case

* Fix faceted setup failure

* Fix tests structure

* Fix last ones from Thrust

* Update to latest wonton

* Fix faceted setup test

* Fix momentum remap

* Fix clipper

* Fix type confusion on expression parsing

* Fix new issues in release mode

* fixed VOF missing centroids errors

* updated wonton

* fixed tiny whitespace error

* added portage.h to the test file

* Removed deprecated register keyword

* Fix number of materials without Tangram

* Fix multi-material distributed driver test

* Fix multi-material second-order driver test

* Fix multi-material first-order driver test

* Fix multi-material distributed driver test

* Fix multi-material uber driver test

* Fix multi-material driver swept-face test

* Fix tests structure

* Fix missing tangram headers

* Fix last issues

* Fix missing executor for serial runs

* Fix last unused variable

* Fix missing material centroid in debug mode

* added remap timing breakouts to the swept face app

* fixed a whitespace nit

* Ignore installation directory

* Allow to create empty swarm

* Allow to create empty state

* Update Wonton hash

Co-authored-by: Konstantin Lipnikov <lipnikov@lanl.gov>
Co-authored-by: Eugene Kikinzon <kikinzon@lanl.gov>
Co-authored-by: Brendan K. Krueger <bkkrueger@lanl.gov>
Co-authored-by: Brendan K. Krueger <bkkrueger@gmail.com>
Co-authored-by: Danny Shevitz <shevitz@lanl.gov>
Co-authored-by: Jan Velechovsky <jan@lanl.gov>
Co-authored-by: Rao Garimella <rao@lanl.gov>
Co-authored-by: Rao Garimella <rao@abyzou.lanl.gov>
Co-authored-by: Angela Herring <angelah@lanl.gov>
  • Loading branch information
10 people committed Apr 27, 2020
1 parent e899459 commit f59ce8d
Show file tree
Hide file tree
Showing 400 changed files with 51,525 additions and 40,523 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -7,3 +7,6 @@ cmake_install.cmake
*~
.DS_Store
build
install
.idea
data
10 changes: 5 additions & 5 deletions README.md
Expand Up @@ -141,7 +141,7 @@ Execute the following from the portage root directory:
INTEL_VERSION=18.0.3
MPI_VERSION=3.1.3
JALI_VERSION=1.0.5
TANGRAM_VERSION=0.9.7
TANGRAM_VERSION=0.9.8
XMOF2D_VERSION=0.9.5
BOOST_VERSION=1.68.0

Expand Down Expand Up @@ -176,7 +176,7 @@ Execute the following from the portage root directory:
. /usr/share/lmod/lmod/init/sh
module load intel/18.0.5 openmpi/2.1.2 cmake
JALI_INSTALL_PREFIX=/usr/projects/ngc/private/jali/1.0.5-intel-18.0.5-openmpi-2.1.2
TANGRAM_INSTALL_PREFIX=/usr/projects/ngc/private/tangram/0.9.7-intel-18.0.5-openmpi-2.1.2
TANGRAM_INSTALL_PREFIX=/usr/projects/ngc/private/tangram/0.9.8-intel-18.0.5-openmpi-2.1.2
XMOF2D_INSTALL_PREFIX=/usr/projects/ngc/private/xmof2d/0.9.5-intel-18.0.5
LAPACKE_DIR=/usr/projects/ngc/private/lapack/3.8.0-patched-intel-18.0.5
mkdir build
Expand Down Expand Up @@ -205,7 +205,7 @@ Thrust and TCMalloc in your build. The cmake command for this is:
. /usr/share/lmod/lmod/init/sh
module load intel/18.0.5 openmpi/2.1.2 cmake
JALI_INSTALL_PREFIX=/usr/projects/ngc/private/jali/1.0.5-intel-18.0.5-openmpi-2.1.2
TANGRAM_INSTALL_PREFIX=/usr/projects/ngc/private/tangram/0.9.7-intel-18.0.5-openmpi-2.1.2-thrust
TANGRAM_INSTALL_PREFIX=/usr/projects/ngc/private/tangram/0.9.8-intel-18.0.5-openmpi-2.1.2-thrust
XMOF2D_INSTALL_PREFIX=/usr/projects/ngc/private/xmof2d/0.9.5-intel-18.0.5
LAPACKE_DIR=/usr/projects/ngc/private/lapack/3.8.0-patched-intel-18.0.5
mkdir build-thrust
Expand Down Expand Up @@ -239,7 +239,7 @@ export MODULEPATH=""
. /opt/local/packages/Modules/default/init/sh
module load intel/18.0.1 openmpi/2.1.2 cmake
JALI_INSTALL_PREFIX=/usr/local/codes/ngc/private/jali/1.0.5-intel-18.0.1-openmpi-2.1.2
TANGRAM_INSTALL_PREFIX=/usr/local/codes/ngc/private/tangram/0.9.7-intel-18.0.1-openmpi-2.1.2
TANGRAM_INSTALL_PREFIX=/usr/local/codes/ngc/private/tangram/0.9.8-intel-18.0.1-openmpi-2.1.2
XMOF2D_INSTALL_PREFIX=/usr/local/codes/ngc/private/xmof2d/0.9.5-intel-18.0.1
LAPACKE_DIR=/usr/local/codes/ngc/private/lapack/3.8.0-patched-intel-18.0.1/
LAPACKE_INCLUDE_DIR=$LAPACKE_DIR/include
Expand Down Expand Up @@ -273,7 +273,7 @@ export MODULEPATH=""
module load gcc/6.4.0 openmpi/2.1.2 cmake
FLECSI_INSTALL_PREFIX=/usr/local/codes/ngc/private/flecsi/374b56b-gcc-6.4.0
FLECSISP_INSTALL_PREFIX=/usr/local/codes/ngc/private/flecsi-sp/e78c594-gcc-6.4.0
TANGRAM_INSTALL_PREFIX=/usr/local/codes/ngc/private/tangram/0.9.7-gcc-6.4.0-openmpi-2.1.2
TANGRAM_INSTALL_PREFIX=/usr/local/codes/ngc/private/tangram/0.9.8-gcc-6.4.0-openmpi-2.1.2
XMOF2D_INSTALL_PREFIX=/usr/local/codes/ngc/private/xmof2d/0.9.5-gcc-6.4.0
LAPACKE_DIR=/usr/local/codes/ngc/private/lapack/3.8.0-patched-gcc-6.4.0
LAPACKE_INCLUDE_DIR=$LAPACKE_DIR/include
Expand Down
7 changes: 1 addition & 6 deletions app/CMakeLists.txt
Expand Up @@ -23,13 +23,8 @@ endif (Jali_DIR OR ENABLE_FleCSI)
if (Jali_DIR)
add_subdirectory(timingapp)
add_subdirectory(part-by-part)
add_subdirectory(swept_face)
endif (Jali_DIR)
if(TANGRAM_FOUND AND XMOF2D_FOUND)
add_subdirectory(ir_linetest_app)
if (Jali_DIR)
add_subdirectory(intersect_reconstruct_app)
endif (Jali_DIR)
endif(TANGRAM_FOUND AND XMOF2D_FOUND)

if (ENABLE_FleCSI)
add_subdirectory(flecsiapp)
Expand Down
4 changes: 3 additions & 1 deletion app/apptest_cmp/apptest_cmp.cc
Expand Up @@ -97,7 +97,9 @@ int main(int argc, char** argv) {
throw std::runtime_error("The field sizes do not match.");
}
double delta, maxval;
for (int i=0; i < gid1.size(); i++) {
int const nb_gids = gid1.size();

for (int i=0; i < nb_gids; i++) {
if (gid1[i] != gid2[i]) {
std::cout << i << " " << gid1[i] << " " << gid2[i] << std::endl;
throw std::runtime_error("The field global IDs do not match.");
Expand Down
54 changes: 40 additions & 14 deletions app/include/user_field.h
Expand Up @@ -12,18 +12,27 @@
// See http://www.partow.net/programming/exprtk/ for source and examples

#include "exprtk.hpp"
#include "wonton/support/Point.h"
#ifdef HAVE_JALI
#include "Point.hh"
#endif

// This functor initializes a general field from a string expression
// and returns its value at any given point

typedef struct user_field {
double x, y, z;
int dim_;
exprtk::symbol_table<double> symbol_table;
exprtk::expression<double> expression;
exprtk::parser<double> parser;
class user_field_t {
public:
double x = 0.;
double y = 0.;
double z = 0.;
int dim_ = 0;

user_field() : dim_(0) {}
exprtk::symbol_table<double> symbol_table {};
exprtk::expression<double> expression {};
exprtk::parser<double> parser {};

user_field_t() = default;
~user_field_t() = default;

int initialize(int dim, std::string const& expression_str) {
dim_ = dim;
Expand All @@ -49,14 +58,31 @@ typedef struct user_field {
return 1;
}

template<class P> double operator()(const P &c) {
if (dim_ > 0) x = c[0];
if (dim_ > 1) y = c[1];
if (dim_ > 2) z = c[2];
double val = expression.value();
return val;
template<int D>
double operator()(Wonton::Point<D> const& c) {
if (dim_ == D) {
if (dim_ > 0) x = c[0];
if (dim_ > 1) y = c[1];
if (dim_ > 2) z = c[2];
double const val = expression.value();
return val;
} else
throw std::runtime_error("incompatible dimensions");
}

#ifdef HAVE_JALI
double operator()(JaliGeometry::Point const& c) {
if (dim_ == c.dim()) {
if (dim_ > 0) x = c[0];
if (dim_ > 1) y = c[1];
if (dim_ > 2) z = c[2];
double const val = expression.value();
return val;
} else
throw std::runtime_error("incompatible dimensions");
}
} user_field_t;
#endif
};



Expand Down
35 changes: 0 additions & 35 deletions app/intersect_reconstruct_app/CMakeLists.txt

This file was deleted.

0 comments on commit f59ce8d

Please sign in to comment.