#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.
1.7.1