adamantine-sim / adamantine

Software to simulate heat transfer for additive manufacturing
https://adamantine-sim.github.io/adamantine/
Other
36 stars 10 forks source link

Add data assimilation capabilities to the app #124

Closed stvdwtt closed 2 years ago

stvdwtt commented 2 years ago

This PR adds data assimilation capabilities to the adamantine app.

Main changes:

Other changes:

Notes:

stvdwtt commented 2 years ago

@Rombur -- I just realized I didn't merge the current master into this so the thermal conductivity input files are wrong. I'll fix that early this afternoon.

stvdwtt commented 2 years ago

Do you know what we should do about the cuda failures in set_with_experimental_data? For now should I only have that test run on the host?

Rombur commented 2 years ago

There is a bug with rank, you need to get it before using it (dealii::Utilities::MPI::this_mpi_process(comm) will give to you). It also look like clang-sanitizer is not happy.

Rombur commented 2 years ago

Clang-tidy and CUDA fails on the same error inside deal.II https://cloud.cees.ornl.gov/jenkins-ci/blue/organizations/jenkins/adamantine/detail/adamantine/136/tests/

An error occurred in line <2241> of file </scratch/source/dealii/source/dofs/dof_tools.cc> in function
    void dealii::DoFTools::internal::{anonymous}::map_dofs_to_support_points(const dealii::hp::MappingCollection<dim, spacedim>&, const dealii::DoFHandler<dim, spacedim>&, std::map<long unsigned int, dealii::Point<spacedim> >&, const dealii::ComponentMask&) [with int dim = 3; int spacedim = 3]
The violated condition was: 
    fe_collection[fe_index].has_support_points()
Additional information: 
    You are trying to access the support points of a finite element that
    either has no support points at all, or for which the corresponding
    tables have not been implemented.
Rombur commented 2 years ago

The reason it passes on the CPU is because we use the Release version and so we skip, deal.II's assert. You should be able to reproduce the error using the Debug version.

stvdwtt commented 2 years ago

@Rombur, I just want to confirm -- since the deal.II PR removed the assert (instead of moving it inside the masked off loop), the code is in this PR is good as it is and doesn't need the mask?

Rombur commented 2 years ago

That's right. The mask is actually for the vector component not the fe index, so there is no point in using it.