#include <vector>
#include <mpi.h>
#include <list>
#include <iostream>
#include <limits>
#include <cmath>
Go to the source code of this file.
Classes | |
struct | exchange |
Defines | |
#define | velocity_solver_init_mpi velocity_solver_init_mpi_ |
Includes. | |
#define | velocity_solver_finalize velocity_solver_finalize_ |
#define | velocity_solver_init_l1l2 velocity_solver_init_l1l2_ |
#define | velocity_solver_solve_l1l2 velocity_solver_solve_l1l2_ |
#define | velocity_solver_init_fo velocity_solver_init_fo_ |
#define | velocity_solver_solve_fo velocity_solver_solve_fo_ |
#define | velocity_solver_init_stokes velocity_solver_init_stokes_ |
#define | velocity_solver_solve_stokes velocity_solver_solve_stokes_ |
#define | velocity_solver_compute_2d_grid velocity_solver_compute_2d_grid_ |
#define | velocity_solver_set_grid_data velocity_solver_set_grid_data_ |
#define | velocity_solver_extrude_3d_grid velocity_solver_extrude_3d_grid_ |
#define | velocity_solver_export_l1l2_velocity velocity_solver_export_l1l2_velocity_ |
#define | velocity_solver_export_2d_data velocity_solver_export_2d_data_ |
#define | velocity_solver_export_fo_velocity velocity_solver_export_fo_velocity_ |
#define | velocity_solver_estimate_SS_SMB velocity_solver_estimate_ss_smb_ |
Typedefs | |
typedef std::list< exchange > | exchangeList_Type |
Functions | |
int | velocity_solver_init_mpi_ (int *fComm) |
Interface function. | |
void | velocity_solver_finalize_ () |
void | velocity_solver_init_l1l2_ (double const *levelsRatio) |
void | velocity_solver_init_fo_ (double const *levelsRatio) |
void | velocity_solver_solve_l1l2_ (double const *lowerSurface_F, double const *thickness_F, double const *beta_F, double const *temperature_F, double *u_normal_F=0, double *heatIntegral_F=0, double *viscosity_F=0) |
void | velocity_solver_solve_fo_ (double const *lowerSurface_F, double const *thickness_F, double const *beta_F, double const *temperature_F, double *u_normal_F=0, double *heatIntegral_F=0, double *viscosity_F=0) |
void | velocity_solver_compute_2d_grid_ (int const *verticesMask_F) |
void | velocity_solver_set_grid_data_ (int const *_nCells_F, int const *_nEdges_F, int const *_nVertices_F, int const *_nLayers, int const *_nCellsSolve_F, int const *_nEdgesSolve_F, int const *_nVerticesSolve_F, int const *_maxNEdgesOnCell_F, double const *radius_F, int const *_cellsOnEdge_F, int const *_cellsOnVertex_F, int const *_verticesOnCell_F, int const *_verticesOnEdge_F, int const *_edgesOnCell_F, int const *_nEdgesOnCells_F, int const *_indexToCellID_F, double const *_xCell_F, double const *_yCell_F, double const *_zCell_F, double const *_areaTriangle_F, int const *sendCellsArray_F, int const *recvCellsArray_F, int const *sendEdgesArray_F, int const *recvEdgesArray_F, int const *sendVerticesArray_F, int const *recvVerticesArray_F) |
void | velocity_solver_extrude_3d_grid_ (double const *levelsRatio_F, double const *lowerSurface_F, double const *thickness_F) |
void | velocity_solver_export_l1l2_velocity_ () |
void | velocity_solver_export_fo_velocity_ () |
exchangeList_Type | unpackMpiArray (int const *array) |
bool | isGhostTriangle (int i, double relTol=1e-1) |
double | signedTriangleArea (const double *x, const double *y) |
double | signedTriangleArea (const double *x, const double *y, const double *z) |
void | import2DFields (double const *lowerSurface_F, double const *thickness_F, double const *beta_F=0, double eps=0) |
std::vector< int > | extendMaskByOneLayer (int const *verticesMask_F) |
void | extendMaskByOneLayer (int const *verticesMask_F, std::vector< int > &extendedFVerticesMask) |
void | importP0Temperature (double const *temperature_F) |
void | get_tetraP1_velocity_on_FEdges (double *uNormal, const std::vector< double > &velocityOnVertices, const std::vector< int > &edgeToFEdge, const std::vector< int > &mpasIndexToVertexID) |
void | get_prism_velocity_on_FEdges (double *uNormal, const std::vector< double > &velocityOnVertices, const std::vector< int > &edgeToFEdge) |
void | createReverseCellsExchangeLists (exchangeList_Type &sendListReverse_F, exchangeList_Type &receiveListReverse_F, const std::vector< int > &fVertexToTriangleID, const std::vector< int > &fCellToVertexID) |
void | createReverseEdgesExchangeLists (exchangeList_Type &sendListReverse_F, exchangeList_Type &receiveListReverse_F, const std::vector< int > &fVertexToTriangleID, const std::vector< int > &fEdgeToEdgeID) |
void | mapCellsToVertices (const std::vector< double > &velocityOnCells, std::vector< double > &velocityOnVertices, int fieldDim, int numLayers, int ordering) |
void | mapVerticesToCells (const std::vector< double > &velocityOnVertices, double *velocityOnCells, int fieldDim, int numLayers, int ordering) |
void | createReducedMPI (int nLocalEntities, MPI_Comm &reduced_comm_id) |
void | computeLocalOffset (int nLocalEntities, int &localOffset, int &nGlobalEntities) |
void | getProcIds (std::vector< int > &field, int const *recvArray) |
void | getProcIds (std::vector< int > &field, exchangeList_Type const *recvList) |
void | allToAll (std::vector< int > &field, int const *sendArray, int const *recvArray, int fieldDim=1) |
void | allToAll (std::vector< int > &field, exchangeList_Type const *sendList, exchangeList_Type const *recvList, int fieldDim=1) |
void | allToAll (double *field, exchangeList_Type const *sendList, exchangeList_Type const *recvList, int fieldDim=1) |
int | initialize_iceProblem (int nTriangles) |
#define velocity_solver_init_mpi velocity_solver_init_mpi_ |
Includes.
Definition at line 33 of file Interface.hpp.
#define velocity_solver_finalize velocity_solver_finalize_ |
Definition at line 34 of file Interface.hpp.
#define velocity_solver_init_l1l2 velocity_solver_init_l1l2_ |
Definition at line 35 of file Interface.hpp.
#define velocity_solver_solve_l1l2 velocity_solver_solve_l1l2_ |
Definition at line 36 of file Interface.hpp.
#define velocity_solver_init_fo velocity_solver_init_fo_ |
Definition at line 37 of file Interface.hpp.
#define velocity_solver_solve_fo velocity_solver_solve_fo_ |
Definition at line 38 of file Interface.hpp.
#define velocity_solver_init_stokes velocity_solver_init_stokes_ |
Definition at line 39 of file Interface.hpp.
#define velocity_solver_solve_stokes velocity_solver_solve_stokes_ |
Definition at line 40 of file Interface.hpp.
#define velocity_solver_compute_2d_grid velocity_solver_compute_2d_grid_ |
Definition at line 41 of file Interface.hpp.
#define velocity_solver_set_grid_data velocity_solver_set_grid_data_ |
Definition at line 42 of file Interface.hpp.
#define velocity_solver_extrude_3d_grid velocity_solver_extrude_3d_grid_ |
Definition at line 43 of file Interface.hpp.
#define velocity_solver_export_l1l2_velocity velocity_solver_export_l1l2_velocity_ |
Definition at line 44 of file Interface.hpp.
#define velocity_solver_export_2d_data velocity_solver_export_2d_data_ |
Definition at line 45 of file Interface.hpp.
#define velocity_solver_export_fo_velocity velocity_solver_export_fo_velocity_ |
Definition at line 46 of file Interface.hpp.
#define velocity_solver_estimate_SS_SMB velocity_solver_estimate_ss_smb_ |
Definition at line 47 of file Interface.hpp.
typedef std::list<exchange> exchangeList_Type |
Definition at line 126 of file Interface.hpp.
int velocity_solver_init_mpi_ | ( | int * | fComm | ) |
Interface function.
Definition at line 184 of file Interface.cpp.
void velocity_solver_finalize_ | ( | ) |
Definition at line 532 of file Interface.cpp.
void velocity_solver_init_l1l2_ | ( | double const * | levelsRatio | ) |
Definition at line 252 of file Interface.cpp.
void velocity_solver_init_fo_ | ( | double const * | levelsRatio | ) |
Definition at line 337 of file Interface.cpp.
void velocity_solver_solve_l1l2_ | ( | double const * | lowerSurface_F, | |
double const * | thickness_F, | |||
double const * | beta_F, | |||
double const * | temperature_F, | |||
double * | u_normal_F = 0 , |
|||
double * | heatIntegral_F = 0 , |
|||
double * | viscosity_F = 0 | |||
) |
Definition at line 296 of file Interface.cpp.
void velocity_solver_solve_fo_ | ( | double const * | lowerSurface_F, | |
double const * | thickness_F, | |||
double const * | beta_F, | |||
double const * | temperature_F, | |||
double * | u_normal_F = 0 , |
|||
double * | heatIntegral_F = 0 , |
|||
double * | viscosity_F = 0 | |||
) |
Definition at line 357 of file Interface.cpp.
void velocity_solver_compute_2d_grid_ | ( | int const * | verticesMask_F | ) |
Definition at line 555 of file Interface.cpp.
void velocity_solver_set_grid_data_ | ( | int const * | _nCells_F, | |
int const * | _nEdges_F, | |||
int const * | _nVertices_F, | |||
int const * | _nLayers, | |||
int const * | _nCellsSolve_F, | |||
int const * | _nEdgesSolve_F, | |||
int const * | _nVerticesSolve_F, | |||
int const * | _maxNEdgesOnCell_F, | |||
double const * | radius_F, | |||
int const * | _cellsOnEdge_F, | |||
int const * | _cellsOnVertex_F, | |||
int const * | _verticesOnCell_F, | |||
int const * | _verticesOnEdge_F, | |||
int const * | _edgesOnCell_F, | |||
int const * | _nEdgesOnCells_F, | |||
int const * | _indexToCellID_F, | |||
double const * | _xCell_F, | |||
double const * | _yCell_F, | |||
double const * | _zCell_F, | |||
double const * | _areaTriangle_F, | |||
int const * | sendCellsArray_F, | |||
int const * | recvCellsArray_F, | |||
int const * | sendEdgesArray_F, | |||
int const * | recvEdgesArray_F, | |||
int const * | sendVerticesArray_F, | |||
int const * | recvVerticesArray_F | |||
) |
Definition at line 194 of file Interface.cpp.
void velocity_solver_extrude_3d_grid_ | ( | double const * | levelsRatio_F, | |
double const * | lowerSurface_F, | |||
double const * | thickness_F | |||
) |
Definition at line 952 of file Interface.cpp.
void velocity_solver_export_l1l2_velocity_ | ( | ) |
Definition at line 304 of file Interface.cpp.
void velocity_solver_export_fo_velocity_ | ( | ) |
Definition at line 519 of file Interface.cpp.
exchangeList_Type unpackMpiArray | ( | int const * | array | ) |
Definition at line 1645 of file Interface.cpp.
bool isGhostTriangle | ( | int | i, | |
double | relTol = 1e-1 | |||
) |
Definition at line 1411 of file Interface.cpp.
double signedTriangleArea | ( | const double * | x, | |
const double * | y | |||
) |
Definition at line 1426 of file Interface.cpp.
double signedTriangleArea | ( | const double * | x, | |
const double * | y, | |||
const double * | z | |||
) |
void import2DFields | ( | double const * | lowerSurface_F, | |
double const * | thickness_F, | |||
double const * | beta_F = 0 , |
|||
double | eps = 0 | |||
) |
Definition at line 1466 of file Interface.cpp.
std::vector<int> extendMaskByOneLayer | ( | int const * | verticesMask_F | ) |
void extendMaskByOneLayer | ( | int const * | verticesMask_F, | |
std::vector< int > & | extendedFVerticesMask | |||
) |
Definition at line 1446 of file Interface.cpp.
void importP0Temperature | ( | double const * | temperature_F | ) |
Definition at line 1536 of file Interface.cpp.
void get_tetraP1_velocity_on_FEdges | ( | double * | uNormal, | |
const std::vector< double > & | velocityOnVertices, | |||
const std::vector< int > & | edgeToFEdge, | |||
const std::vector< int > & | mpasIndexToVertexID | |||
) |
Definition at line 1011 of file Interface.cpp.
void get_prism_velocity_on_FEdges | ( | double * | uNormal, | |
const std::vector< double > & | velocityOnVertices, | |||
const std::vector< int > & | edgeToFEdge | |||
) |
Definition at line 1053 of file Interface.cpp.
void createReverseCellsExchangeLists | ( | exchangeList_Type & | sendListReverse_F, | |
exchangeList_Type & | receiveListReverse_F, | |||
const std::vector< int > & | fVertexToTriangleID, | |||
const std::vector< int > & | fCellToVertexID | |||
) |
Definition at line 1124 of file Interface.cpp.
void createReverseEdgesExchangeLists | ( | exchangeList_Type & | sendListReverse_F, | |
exchangeList_Type & | receiveListReverse_F, | |||
const std::vector< int > & | fVertexToTriangleID, | |||
const std::vector< int > & | fEdgeToEdgeID | |||
) |
Definition at line 1194 of file Interface.cpp.
void mapCellsToVertices | ( | const std::vector< double > & | velocityOnCells, | |
std::vector< double > & | velocityOnVertices, | |||
int | fieldDim, | |||
int | numLayers, | |||
int | ordering | |||
) |
Definition at line 1388 of file Interface.cpp.
void mapVerticesToCells | ( | const std::vector< double > & | velocityOnVertices, | |
double * | velocityOnCells, | |||
int | fieldDim, | |||
int | numLayers, | |||
int | ordering | |||
) |
Definition at line 1094 of file Interface.cpp.
void createReducedMPI | ( | int | nLocalEntities, | |
MPI_Comm & | reduced_comm_id | |||
) |
Definition at line 1571 of file Interface.cpp.
void computeLocalOffset | ( | int | nLocalEntities, | |
int & | localOffset, | |||
int & | nGlobalEntities | |||
) |
Definition at line 1593 of file Interface.cpp.
void getProcIds | ( | std::vector< int > & | field, | |
int const * | recvArray | |||
) |
Definition at line 1612 of file Interface.cpp.
void getProcIds | ( | std::vector< int > & | field, | |
exchangeList_Type const * | recvList | |||
) |
Definition at line 1629 of file Interface.cpp.
void allToAll | ( | std::vector< int > & | field, | |
int const * | sendArray, | |||
int const * | recvArray, | |||
int | fieldDim = 1 | |||
) |
Definition at line 1658 of file Interface.cpp.
void allToAll | ( | std::vector< int > & | field, | |
exchangeList_Type const * | sendList, | |||
exchangeList_Type const * | recvList, | |||
int | fieldDim = 1 | |||
) |
Definition at line 1715 of file Interface.cpp.
void allToAll | ( | double * | field, | |
exchangeList_Type const * | sendList, | |||
exchangeList_Type const * | recvList, | |||
int | fieldDim = 1 | |||
) |
Definition at line 1756 of file Interface.cpp.
int initialize_iceProblem | ( | int | nTriangles | ) |
Definition at line 1797 of file Interface.cpp.