proteus  1.8.1
C/C++/Fortran libraries
timeIntegration.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <strings.h>
#include <assert.h>
#include "timeIntegration.h"
Include dependency graph for timeIntegration.c:

Go to the source code of this file.

Functions

void psiTCtteDT (int nPoints, double tau, double dtn, double dtnm1, double *yn, double *ypn, double *ypnm1, double *dtnp1)
 
double msign (double a)
 
double minmod2 (double a, double b)
 
double musclmod (double dU, double dU1, double dU2)
 
double minmod3 (double dU, double dU1, double dU2)
 
double mminmod2 (double dU, double dU1, double M, int *tag)
 
int invertLocal3d (double A[3][3], double AI[3][3])
 
void computeLocalGradient1d (double *x0, double *x1, double *dN0, double *dN1, double u0, double u1, double *dU)
 
void computeLocalGradient2d (double *x0, double *x1, double *x2, double *dN0, double *dN1, double *dN2, double u0, double u1, double u2, double *dU)
 
void computeLocalGradient3d (double *x0, double *x1, double *x2, double *x3, double *dN0, double *dN1, double *dN2, double *dN3, double u0, double u1, double u2, double u3, double *dU)
 
void applyDGlimitingP1Lagrange1d (int limiterFlag, int nElements_global, int nNodes_element, int nElementBoundaries_element, int nDOF_element, int *elementNodesArray, int *elementNeighborsArray, double *nodeArray, double *elementBarycentersArray, int *l2g, int *tag, double *Uin, double *Uout)
 
void applyDGlimitingP1Lagrange1d_withVacuumTol (int enforcePositivity, double vacuumTol, int nElements_global, int nNodes_element, int nElementBoundaries_element, int nDOF_element, int *elementNodesArray, int *elementNeighborsArray, double *nodeArray, double *elementBarycentersArray, int *l2g, int *tag, double *Uin, double *Uout)
 
void computeElementNeighborShapeGradients (int nElements_global, int nElementBoundaries_element, int nSpace, const int *elementBoundariesArray, const int *elementNeighborsArray, double *elementBarycentersArray, double *elementBoundaryBarycentersArray, double *elementNeighborShapeGradients)
 
void computeCockburnDGlimiterArrays2d (int nElements_global, int nElementBoundaries_element, int nSpace, const int *elementBoundariesArray, const int *elementNeighborsArray, const double *elementBarycentersArray, const double *elementBoundaryBarycentersArray, const double *elementNeighborShapeGradients, double *alphas, int *alphaNeighbors)
 
void applyCockburnDGlimiterP1Lagrange2d (double nu, double Mh2, int nElements_global, int nElementBoundaries_element, int nSpace, int nDOF_element, int *elementNeighborsArray, int *l2g, int *tag, double *alphas, int *alphaNeighbors, double *Uin, double *Uout)
 
void computeElementAveragesP1Lagrange (int nElements_global, int nDOF_element, const int *l2g, const double *Uin, double *elementAverages)
 
void shortSortDescending (double *A, int *order, int len)
 
void applyDurlofskyDGlimiterP1Lagrange2d (int killExtrema, int allowMinWithUndershoot, int nElements_global, int nElementBoundaries_element, int nNodes_element, int nSpace, int nDOF_element, const int *elementNeighborsArray, const int *elementBoundariesArray, const int *elementNodesArray, const double *nodeArray, const double *elementBarycentersArray, const double *elementBoundaryBarycentersArray, const double *elementNeighborShapeGradients, const int *l2g, const double *grad_v0, double *elementAverages, int *tag, double *Uin, double *Uout)
 
void applyDurlofskyDGlimiterP1Lagrange3d (int killExtrema, int allowMinWithUndershoot, int nElements_global, int nElementBoundaries_element, int nNodes_element, int nSpace, int nDOF_element, const int *elementNeighborsArray, const int *elementBoundariesArray, const int *elementNodesArray, const double *nodeArray, const double *elementBarycentersArray, const double *elementBoundaryBarycentersArray, const double *elementNeighborShapeGradients, const int *l2g, const double *grad_v0, double *elementAverages, int *tag, double *Uin, double *Uout)
 
void applyDurlofskyDGlimiterP1Lagrange2d_withVacuumTol (int killExtrema, int allowMinWithUndershoot, int enforcePositivity, double vacuumTol, int nElements_global, int nElementBoundaries_element, int nNodes_element, int nSpace, int nDOF_element, const int *elementNeighborsArray, const int *elementBoundariesArray, const int *elementNodesArray, const double *nodeArray, const double *elementBarycentersArray, const double *elementBoundaryBarycentersArray, const double *elementNeighborShapeGradients, const int *l2g, const double *grad_v0, double *elementAverages, int *tag, double *Uin, double *Uout)
 

Function Documentation

◆ applyCockburnDGlimiterP1Lagrange2d()

void applyCockburnDGlimiterP1Lagrange2d ( double  nu,
double  Mh2,
int  nElements_global,
int  nElementBoundaries_element,
int  nSpace,
int  nDOF_element,
int *  elementNeighborsArray,
int *  l2g,
int *  tag,
double *  alphas,
int *  alphaNeighbors,
double *  Uin,
double *  Uout 
)

Definition at line 736 of file timeIntegration.c.

◆ applyDGlimitingP1Lagrange1d()

void applyDGlimitingP1Lagrange1d ( int  limiterFlag,
int  nElements_global,
int  nNodes_element,
int  nElementBoundaries_element,
int  nDOF_element,
int *  elementNodesArray,
int *  elementNeighborsArray,
double *  nodeArray,
double *  elementBarycentersArray,
int *  l2g,
int *  tag,
double *  Uin,
double *  Uout 
)

Definition at line 214 of file timeIntegration.c.

◆ applyDGlimitingP1Lagrange1d_withVacuumTol()

void applyDGlimitingP1Lagrange1d_withVacuumTol ( int  enforcePositivity,
double  vacuumTol,
int  nElements_global,
int  nNodes_element,
int  nElementBoundaries_element,
int  nDOF_element,
int *  elementNodesArray,
int *  elementNeighborsArray,
double *  nodeArray,
double *  elementBarycentersArray,
int *  l2g,
int *  tag,
double *  Uin,
double *  Uout 
)

Definition at line 310 of file timeIntegration.c.

◆ applyDurlofskyDGlimiterP1Lagrange2d()

void applyDurlofskyDGlimiterP1Lagrange2d ( int  killExtrema,
int  allowMinWithUndershoot,
int  nElements_global,
int  nElementBoundaries_element,
int  nNodes_element,
int  nSpace,
int  nDOF_element,
const int *  elementNeighborsArray,
const int *  elementBoundariesArray,
const int *  elementNodesArray,
const double *  nodeArray,
const double *  elementBarycentersArray,
const double *  elementBoundaryBarycentersArray,
const double *  elementNeighborShapeGradients,
const int *  l2g,
const double *  grad_v0,
double *  elementAverages,
int *  tag,
double *  Uin,
double *  Uout 
)

Definition at line 879 of file timeIntegration.c.

◆ applyDurlofskyDGlimiterP1Lagrange2d_withVacuumTol()

void applyDurlofskyDGlimiterP1Lagrange2d_withVacuumTol ( int  killExtrema,
int  allowMinWithUndershoot,
int  enforcePositivity,
double  vacuumTol,
int  nElements_global,
int  nElementBoundaries_element,
int  nNodes_element,
int  nSpace,
int  nDOF_element,
const int *  elementNeighborsArray,
const int *  elementBoundariesArray,
const int *  elementNodesArray,
const double *  nodeArray,
const double *  elementBarycentersArray,
const double *  elementBoundaryBarycentersArray,
const double *  elementNeighborShapeGradients,
const int *  l2g,
const double *  grad_v0,
double *  elementAverages,
int *  tag,
double *  Uin,
double *  Uout 
)

Definition at line 1397 of file timeIntegration.c.

◆ applyDurlofskyDGlimiterP1Lagrange3d()

void applyDurlofskyDGlimiterP1Lagrange3d ( int  killExtrema,
int  allowMinWithUndershoot,
int  nElements_global,
int  nElementBoundaries_element,
int  nNodes_element,
int  nSpace,
int  nDOF_element,
const int *  elementNeighborsArray,
const int *  elementBoundariesArray,
const int *  elementNodesArray,
const double *  nodeArray,
const double *  elementBarycentersArray,
const double *  elementBoundaryBarycentersArray,
const double *  elementNeighborShapeGradients,
const int *  l2g,
const double *  grad_v0,
double *  elementAverages,
int *  tag,
double *  Uin,
double *  Uout 
)

Definition at line 1107 of file timeIntegration.c.

◆ computeCockburnDGlimiterArrays2d()

void computeCockburnDGlimiterArrays2d ( int  nElements_global,
int  nElementBoundaries_element,
int  nSpace,
const int *  elementBoundariesArray,
const int *  elementNeighborsArray,
const double *  elementBarycentersArray,
const double *  elementBoundaryBarycentersArray,
const double *  elementNeighborShapeGradients,
double *  alphas,
int *  alphaNeighbors 
)

Definition at line 649 of file timeIntegration.c.

◆ computeElementAveragesP1Lagrange()

void computeElementAveragesP1Lagrange ( int  nElements_global,
int  nDOF_element,
const int *  l2g,
const double *  Uin,
double *  elementAverages 
)

Definition at line 839 of file timeIntegration.c.

◆ computeElementNeighborShapeGradients()

void computeElementNeighborShapeGradients ( int  nElements_global,
int  nElementBoundaries_element,
int  nSpace,
const int *  elementBoundariesArray,
const int *  elementNeighborsArray,
double *  elementBarycentersArray,
double *  elementBoundaryBarycentersArray,
double *  elementNeighborShapeGradients 
)

Definition at line 409 of file timeIntegration.c.

◆ computeLocalGradient1d()

void computeLocalGradient1d ( double *  x0,
double *  x1,
double *  dN0,
double *  dN1,
double  u0,
double  u1,
double *  dU 
)

Definition at line 118 of file timeIntegration.c.

◆ computeLocalGradient2d()

void computeLocalGradient2d ( double *  x0,
double *  x1,
double *  x2,
double *  dN0,
double *  dN1,
double *  dN2,
double  u0,
double  u1,
double  u2,
double *  dU 
)

Definition at line 128 of file timeIntegration.c.

◆ computeLocalGradient3d()

void computeLocalGradient3d ( double *  x0,
double *  x1,
double *  x2,
double *  x3,
double *  dN0,
double *  dN1,
double *  dN2,
double *  dN3,
double  u0,
double  u1,
double  u2,
double  u3,
double *  dU 
)

Definition at line 164 of file timeIntegration.c.

◆ invertLocal3d()

int invertLocal3d ( double  A[3][3],
double  AI[3][3] 
)

Definition at line 80 of file timeIntegration.c.

◆ minmod2()

double minmod2 ( double  a,
double  b 
)

Definition at line 53 of file timeIntegration.c.

◆ minmod3()

double minmod3 ( double  dU,
double  dU1,
double  dU2 
)

Definition at line 64 of file timeIntegration.c.

◆ mminmod2()

double mminmod2 ( double  dU,
double  dU1,
double  M,
int *  tag 
)

Definition at line 69 of file timeIntegration.c.

◆ msign()

double msign ( double  a)

Definition at line 49 of file timeIntegration.c.

◆ musclmod()

double musclmod ( double  dU,
double  dU1,
double  dU2 
)

Definition at line 59 of file timeIntegration.c.

◆ psiTCtteDT()

void psiTCtteDT ( int  nPoints,
double  tau,
double  dtn,
double  dtnm1,
double *  yn,
double *  ypn,
double *  ypnm1,
double *  dtnp1 
)

Definition at line 12 of file timeIntegration.c.

◆ shortSortDescending()

void shortSortDescending ( double *  A,
int *  order,
int  len 
)

Definition at line 862 of file timeIntegration.c.