Program Listing for File legacy_inclusions.h

Return to documentation for file (include/immersx/coupling/legacy_inclusions.h)

// ---------------------------------------------------------------------
//
// Copyright (C) 2024 by Luca Heltai
//
// This file is part of the ImmersX application, based on
// the deal.II library.
//
// ---------------------------------------------------------------------

#ifndef immersx_legacy_inclusions_h
#define immersx_legacy_inclusions_h

#include <deal.II/dofs/dof_handler.h>

#include <deal.II/grid/tria.h>

#include <deal.II/lac/vector.h>

#include <immersx/core/reduced_field_catalog.h>
#include <immersx/coupling/point_cloud.h>

namespace ImmersX
{
  namespace LegacyInclusions
  {
    double
    fourier_to_reference_scale(const unsigned int mode);

    std::vector<unsigned int>
    fourier_to_reference_indices(const unsigned int n_coefficients,
                                 const unsigned int n_components,
                                 const unsigned int polynomial_degree,
                                 const unsigned int spacedim);

    void
    read_2d(const std::string         &inclusions_file,
            const std::string         &data_file,
            const unsigned int         n_coefficients,
            const unsigned int         n_components,
            const std::vector<double> &reference_data,
            PointCloud<2>             &point_cloud);

    void
    read_3d(const std::string           &inclusions_file,
            const std::string           &data_file,
            const unsigned int           n_coefficients,
            const unsigned int           n_components,
            const std::vector<double>   &reference_data,
            dealii::Triangulation<1, 3> &tria,
            dealii::DoFHandler<1, 3>    &properties_dh,
            dealii::Vector<double>      &properties,
            FieldCatalog                &catalog);
  } // namespace LegacyInclusions

} // namespace ImmersX

#endif // immersx_legacy_inclusions_h