dfnTrans
Code for Particle Tracking simulations in 3D DFN
|
#include <stdio.h>
#include <search.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "FuncDef.h"
#include <unistd.h>
#include <time.h>
Go to the source code of this file.
Data Structures | |
struct | inpfile |
Functions | |
int | main (int argc, char *controlf[]) |
Variables | |
unsigned int | pflotran |
unsigned int | fehm |
unsigned int | nnodes |
unsigned int | ncells |
unsigned int | nfract |
unsigned int | max_neighb |
unsigned int | npart |
unsigned int | np |
unsigned int | nzone_in |
unsigned int * | nodezonein |
unsigned int * | nodezoneout |
unsigned int | flag_w |
struct material * | fracture |
struct vertex * | node |
struct contam * | particle |
struct element * | cell |
char | maindir [125] |
char | controlfile [120] |
double | porosity |
double | density |
unsigned long int | timesteps |
double | thickness |
double | saturation |
double | timeunit |
double | totalFluxIn |
int main | ( | int | argc, |
char * | controlf[] | ||
) |
The MAIN of dfnTrans code. Input argument is a control file with input parameters to dfnTrans. The main parts of particle tracking simulations are called:
Definition at line 66 of file main.c.
References cell, CheckGrid(), Control_Data(), Control_File(), Control_Param(), controlfile, Convertto2d(), Convertto3d(), DarcyVelocity(), DefineTimeStep(), density, inpfile::filename, inpfile::flag, fracture, maindir, node, nodezonein, nodezoneout, inpfile::param, particle, ParticleTrack(), porosity, ReadBoundaryNodes(), ReadDataFiles(), ReadInit(), saturation, String_Compare(), thickness, timesteps, timeunit, Velocity3D(), and WritingInit().
struct element* cell |
DYNAMIC ARRAY OF TRIANGULAR CELLS in DFN mesh
Definition at line 42 of file main.c.
Referenced by AcrossIntersection(), AdjacentCells(), BoundaryCells(), CalculateCurrentDT(), CalculateLagrangian(), CalculatePosition3D(), CalculateWeights(), CheckDistance(), CorrectorStep(), FlowInWeight(), HalfPolygonVelocity(), InitPos(), InOutFlowCell(), InsideCell(), main(), Moving2Center(), Moving2NextCell(), Moving2NextCellBound(), OutputMarPlumDisp(), ParticleOutput(), ParticleTrack(), PredictorStep(), ReadDataFiles(), ReadInit(), SearchNeighborCells(), StreamlineRandomSampling(), TimeDomainRW(), WritingInit(), XindexC(), and YindexC().
char controlfile[120] |
double density |
Flow density, defined by user
Definition at line 47 of file main.c.
Referenced by InitParticles_flux(), main(), ReadBoundaryNodes(), ReadPFLOTRANfile(), VelocityExteriorNode(), and VelocityInteriorNode().
unsigned int fehm |
fehm=1 when FEHM flow solver is used
Definition at line 28 of file main.c.
Referenced by DarcyVelocity(), HalfPolygonVelocity(), and ReadDataFiles().
unsigned int flag_w |
Definition at line 38 of file main.c.
Referenced by InitPos(), and ParticleTrack().
struct material* fracture |
DYNAMIC ARRAY OF FRACTURES
Definition at line 39 of file main.c.
Referenced by AdjacentCells(), BoundaryCells(), CalculatePosition3D(), CalculateVelocity3D(), CheckDistance(), CheckGrid(), Convertto2d(), Convertto3d(), Coordinations2D(), DarcyVelocity(), DefineBoundaryAngle(), HalfPolygonVelocity(), InitParticles_ones(), InitPos(), main(), Moving2NextCell(), Moving2NextCellBound(), NeighborCells(), ParticleOutput(), ParticleTrack(), ReadAperture(), ReadDataFiles(), ReadInit(), StreamlineRandomSampling(), TimeDomainRW(), WritingInit(), Xindex(), XindexC(), Yindex(), and YindexC().
char maindir[125] |
The directory/path for particle tracking outputs, defined by user
Definition at line 43 of file main.c.
Referenced by CalculateVelocity3D(), DefineBoundaryAngle(), main(), OutputMarPlumDisp(), ParticleOutput(), ParticleTrack(), ReadBoundaryNodes(), and WritingInit().
unsigned int max_neighb |
maximum number of nodes neighbours/connections
Definition at line 32 of file main.c.
Referenced by DarcyVelocity(), HalfPolygonVelocity(), ReadDataFiles(), ReadFEHMfile(), and ReadInit().
unsigned int ncells |
total number of triangular elements in the DFN mesh
Definition at line 30 of file main.c.
Referenced by BoundaryCells(), InitPos(), ReadDataFiles(), and ReadInit().
unsigned int nfract |
total number of fractures in the DFN mesh
Definition at line 31 of file main.c.
Referenced by Convertto2d(), Convertto3d(), Coordinations2D(), DefineBoundaryAngle(), ParticleTrack(), ReadAperture(), ReadDataFiles(), ReadInit(), and WritingInit().
unsigned int nnodes |
total number of nodes in the DFN mesh
Definition at line 29 of file main.c.
Referenced by CalculateVelocity3D(), CheckGrid(), Convertto2d(), Coordinations2D(), DarcyVelocity(), DefineBoundaryAngle(), DefineTimeStep(), ReadAperture(), ReadDataFiles(), ReadFEHMfile(), ReadInit(), ReadPFLOTRANfile(), and WritingInit().
struct vertex* node |
DYNAMIC ARRAY OF NODES in DFN mesh
Definition at line 40 of file main.c.
Referenced by AcrossIntersection(), AdjacentCells(), BoundaryCells(), CalculateCurrentDT(), CalculateLagrangian(), CalculateVelocity3D(), CalculateWeights(), CheckDistance(), CheckGrid(), CompleteMixingRandomSampling(), Convertto2d(), Coordinations2D(), CornerVelocity(), DarcyVelocity(), DefineBoundaryAngle(), DefineTimeStep(), FlowInWeight(), HalfPolygonVelocity(), InitCell(), InitInMatrix(), InitInWell(), InitParticles_eq(), InitParticles_flux(), InitParticles_np(), InitPos(), InOutFlowCell(), InsideCell(), main(), Moving2Center(), Moving2NextCell(), Moving2NextCellBound(), NeighborCells(), ParticleOutput(), ParticleTrack(), PredictorStep(), ReadAperture(), ReadBoundaryNodes(), ReadDataFiles(), ReadFEHMfile(), ReadInit(), ReadPFLOTRANfile(), StreamlineRandomSampling(), TimeDomainRW(), VelocityExteriorNode(), VelocityInteriorNode(), WritingInit(), Xindex(), XindexC(), Yindex(), and YindexC().
unsigned int* nodezonein |
pointer to the dynamic array with a list of in-flow boundary nodes
Definition at line 36 of file main.c.
Referenced by InitCell(), InitInWell(), InitParticles_flux(), InitParticles_np(), InitPos(), main(), ParticleTrack(), and ReadBoundaryNodes().
unsigned int* nodezoneout |
pointer to the dynamic array with a list of out-flow boundary nodes
Definition at line 37 of file main.c.
Referenced by main(), ParticleTrack(), and ReadBoundaryNodes().
unsigned int np |
unsigned int npart |
initial number of particles set up in the simulation
Definition at line 33 of file main.c.
Referenced by InitInMatrix(), InitParticles_eq(), InitParticles_flux(), InitParticles_np(), InitParticles_ones(), and InitPos().
unsigned int nzone_in |
number of nodes in in-flow boundary face/zone
Definition at line 35 of file main.c.
Referenced by InitCell(), InitInWell(), InitPos(), and ReadBoundaryNodes().
struct contam* particle |
DYNAMIC ARRAY OF PARTICLES
Definition at line 41 of file main.c.
Referenced by AcrossIntersection(), CalculateCurrentDT(), CalculateLagrangian(), CalculatePosition3D(), CalculateWeights(), CheckDistance(), CorrectorStep(), FlowInWeight(), InitInMatrix(), InitInWell(), InitParticles_eq(), InitParticles_flux(), InitParticles_np(), InitParticles_ones(), InitPos(), InOutFlowCell(), InsideCell(), main(), Moving2Center(), Moving2NextCell(), Moving2NextCellBound(), NeighborCells(), ParticleOutput(), ParticleTrack(), PredictorStep(), SearchNeighborCells(), TimeDomainRW(), Xindex(), and Yindex().
unsigned int pflotran |
pflotran=1 when PFLOTRAN flow solver is used
Definition at line 27 of file main.c.
Referenced by DarcyVelocity(), HalfPolygonVelocity(), and ReadDataFiles().
double porosity |
Fracture porosity, used in velocity reconstructions, defined by user
Definition at line 46 of file main.c.
Referenced by main(), VelocityExteriorNode(), and VelocityInteriorNode().
double saturation |
double thickness |
One value for all fractures aperture (defined by user), used in case when fracture aperture is not provided by user
Definition at line 49 of file main.c.
Referenced by main(), and ReadDataFiles().
unsigned long int timesteps |
Max number of time steps used for each particles movements, defined by user
Definition at line 48 of file main.c.
Referenced by main(), and ParticleTrack().
double timeunit |
Time unit multiplier, converts calculated time/velocities according to required time units
Definition at line 51 of file main.c.
Referenced by main(), OutputMarPlumDisp(), ParticleTrack(), TimeFromMatrix(), VelocityExteriorNode(), and VelocityInteriorNode().
double totalFluxIn |
Total Flow flux on in-flow boundary, calculated in the code
Definition at line 52 of file main.c.
Referenced by InitPos(), and ReadBoundaryNodes().