ExaDG
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType > Class Template Referenceabstract

#include <coupling_base.h>

Inheritance diagram for ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType >:
ExaDG::preCICE::DoFCoupling< dim, data_dim, VectorizedArrayType > ExaDG::preCICE::ExaDGCoupling< dim, data_dim, VectorizedArrayType > ExaDG::preCICE::QuadCoupling< dim, data_dim, VectorizedArrayType >

Public Types

using FEFaceIntegrator = FaceIntegrator<dim, data_dim, double, VectorizedArrayType>
 Alias for the face integrator.
 
using value_type = typename FEFaceIntegrator::value_type
 

Public Member Functions

 CouplingBase (dealii::MatrixFree< dim, double, VectorizedArrayType > const &data, std::string const mesh_name, dealii::types::boundary_id const surface_id)
 
virtual void define_coupling_mesh ()=0
 define_coupling_mesh Define the coupling mesh associated to the data points
 
virtual void process_coupling_mesh ()
 process_coupling_mesh (optional) Handle post-preCICE-initialization steps, e.g. do computations on received partitions or create communication patterns. This function just returns in the base class implementation.
 
virtual void write_data (dealii::LinearAlgebra::distributed::Vector< double > const &data_vector, std::string const &data_name)=0
 write_data Write the data associated to the defined vertices to preCICE
 
virtual void read_block_data (std::string const &data_name) const
 
void add_read_data (std::string const &read_data_name)
 Queries data IDs from preCICE for the given read data name.
 
void add_write_data (std::string const &write_data_name)
 Queries data IDs from preCICE for the given write data name.
 
void set_write_data_type (WriteDataType write_data_specification)
 Set the WriteDataType in this class which determines the location of the write data (e.g. DoFs)
 

Protected Member Functions

void print_info (bool const reader, unsigned int const local_size) const
 Print information of the current setup.
 
virtual std::string get_surface_type () const =0
 

Protected Attributes

dealii::MatrixFree< dim, double, VectorizedArrayType > const & matrix_free
 The dealii::MatrixFree object (preCICE can only handle double precision)
 
std::string const mesh_name
 public precice solverinterface
 
int mesh_id
 
std::map< std::string, int > read_data_map
 
std::map< std::string, int > write_data_map
 
dealii::types::boundary_id const dealii_boundary_surface_id
 
WriteDataType write_data_type
 

Detailed Description

template<int dim, int data_dim, typename VectorizedArrayType>
class ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType >

A pure abstract base class, which defines the methods for the functions used in the main Adapter class. Each instance of all derived classes are always dedicated to a specific coupling mesh, i.e., the vertices used for the coupling. The instantiated objects provide functions on how to read and write data on this mesh and how to define the mesh by means of its spatial coordinates.

Member Function Documentation

◆ add_read_data()

template<int dim, int data_dim, typename VectorizedArrayType >
void ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType >::add_read_data ( std::string const & read_data_name)

Queries data IDs from preCICE for the given read data name.

Parameters
read_data_name

◆ add_write_data()

template<int dim, int data_dim, typename VectorizedArrayType >
void ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType >::add_write_data ( std::string const & write_data_name)

Queries data IDs from preCICE for the given write data name.

Parameters
write_data_name

◆ define_coupling_mesh()

template<int dim, int data_dim, typename VectorizedArrayType >
virtual void ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType >::define_coupling_mesh ( )
pure virtual

◆ print_info()

template<int dim, int data_dim, typename VectorizedArrayType >
void ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType >::print_info ( bool const reader,
unsigned int const local_size ) const
protected

Print information of the current setup.

Parameters
[in]readerBoolean in order to decide if we want read or write data information
[in]local_sizeThe number of element the local process works on

◆ write_data()

template<int dim, int data_dim, typename VectorizedArrayType >
virtual void ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType >::write_data ( dealii::LinearAlgebra::distributed::Vector< double > const & data_vector,
std::string const & data_name )
pure virtual

write_data Write the data associated to the defined vertices to preCICE

Parameters
data_vectorVector holding the global solution to be passed to preCICE.

Implemented in ExaDG::preCICE::DoFCoupling< dim, data_dim, VectorizedArrayType >, ExaDG::preCICE::ExaDGCoupling< dim, data_dim, VectorizedArrayType >, and ExaDG::preCICE::QuadCoupling< dim, data_dim, VectorizedArrayType >.

Member Data Documentation

◆ mesh_name

template<int dim, int data_dim, typename VectorizedArrayType >
std::string const ExaDG::preCICE::CouplingBase< dim, data_dim, VectorizedArrayType >::mesh_name
protected

public precice solverinterface

Configuration parameters


The documentation for this class was generated from the following file: