Hydro transportation class#

struct caivity_type#
#include <openfdem_hydro.h>

Public Functions

caivity_type() = default#
void clear()#

Public Members

UInt size = 0#
std::vector<UInt> node#
struct Hydro_structure#
#include <openfdem_hydro.h>

Public Functions

void resize(Int size, Int initialsize = 0)#
void clear()#

Public Members

UInt _nodeSize = 0#
UInt _elementSize = 0#
UInt _cohesiveSize = 0#
std::vector<Real> fluid_pressure#
std::vector<Int> boud_id#
std::vector<Int> mat_id#
std::vector<Int> cohmat_id#
UInt cavity_number = 0#
std::vector<caivity_type> cavity#
std::vector<Real> matrix_pressure#
std::vector<Real> matrixFlowRate#
std::vector<Real> matrixSaturation#
std::vector<Real> matrixVolume#
std::vector<Real> matrixVolumeOld#
std::vector<Real> matrixAlpha#
std::vector<Real> matrixM#
std::vector<Real> matrixprosity#
std::vector<Real> fracture_pressure#
std::vector<Real> fractureFlowRate#
std::vector<Real> fractureSaturation#
std::vector<Real> fractureVolume#
std::vector<Real> fractureVolumeOld#
std::vector<Real> tau#
std::vector<Int> hydro_wet#
std::vector<Real> length#
std::vector<Real> aperature#
std::vector<Int> connect#
std::vector<Tensor> kfij#
std::vector<bool> isFloating#
std::vector<Vector2> THMFlowRate#
std::vector<Real> viscosity#
std::vector<Real> gasDensity#
std::vector<Real> gasDensityOld#
std::vector<Real> gasBulk#
std::vector<Real> gas_pressure#
std::vector<Real> gasSaturation#
std::vector<Real> gasFlowRate#
std::vector<Real> gasVolume#
std::vector<Real> gasVolumeOld#
short subSteps = 10#
short subNowStep = 0#
Real hydro_time = 0.0#
Real sub_timestep = 0.0#
bool hasMatrixFlow = false#
bool hasFractureFlow = false#
bool isDoubleWayCouple = true#
bool notbackforwardPressure = false#
bool isFullFractureFlow = true#
bool hasGasFlow = false#
bool isTHMCouple = false#
bool hasinitialized = false#
class HydroBaseFractureFlow : public OpenFdemAbstract#

Public Functions

inline HydroBaseFractureFlow()#
inline ~HydroBaseFractureFlow()#
void updateCZMAperature(General general, Nodal nodal, Cohelement cohelement)#

Compute the fracture aperature on surface, the aperature should be updated for broken CZM as well, this function only need to run at the mechanical step.

Parameters:
  • nodal

  • face

  • cohelement

  • hydro

  • solidmat

Returns:

na

void computeFracturePermabilityTensor(General general, Element element, Cohelement cohelement, Edge edge, Nodal nodal, Hydro hydro, Solidmat solidmat)#

Compute the fracture permability tensor for fracture flow.

\detail The k.ij is assembled from the local permability tensor on each surface of an element according to modified cubic law, the local permability is constructured by the principal values on each local directions in d-s-n plane

Parameters:
  • element

  • face

  • hydro

  • solidmat

void computeFractureVolume(General general, Cohelement cohelement, Hydro hydro, Solidmat solidmat)#

Compute fracture volume.

\attension The fracture volume is V=\,\,\frac{1}{2}\left( S_{low}+S_{up} \right) o the fracture aperature should be updated before calculate fracture volume

Parameters:
  • face

  • cohelement

  • hydro

Vector2 computeFractureFlowRateatIntergration(General general, Element element, Nodal nodal, const Int elementindices, const Int igauss, Intergration intergration, Hydro hydro, Solidmat solidmat)#

compute fracture flow rate at intergration point

Parameters:
  • general

  • element

  • nodal

  • elementindices

  • intPoint

  • hydro

  • solidmat

Returns:

q.i: flow rate vector in each direction

void computeFractureFlowRate(General general, Nodal nodal, Element element, Intergration intergration, Hydro hydro, Solidmat solidmat)#
void assembleFractureFlow(General general, Hydro hydro)#
void assembleFractureVolume(General general, Hydro hydro)#
void updateFractureFlowRateinHydroStep(General general, Nodal nodal, Hydro hydro, Boudary boudary, Solidmat solidmat)#
void updateFractureFlowRateinMechanicalStep(General general, Nodal nodal, Hydro hydro, Boudary boudary, Solidmat solidmat)#
void computeFractureSolidLeakoff(General general, Cohelement cohelement, Hydro hydro, Solidmat solidmat)#
void computeFractureFlowForce(General general, Boudary boundary, Element element, Nodal nodal, Hydro hydro)#
void FractureFlowRuninHydroStep(General general, Nodal nodal, Element element, Cohelement cohelement, Intergration intergration, Edge edge, Hydro hydro, Solidmat solidmat, Boudary boundary)#
void FractureFlowRuninMechanicalStep(General general, Nodal nodal, Element element, Cohelement cohelement, Intergration intergration, Edge edge, Hydro hydro, Solidmat solidmat, Boudary boundary)#

Public Static Functions

static void initializeforHydroStep(General general, Nodal nodal, Hydro hydro, Boudary boudary)#

Initialize the fracture flow and fracture volume at hydro knnot.

Parameters:
  • boudary – boudary condition class refference

  • nodal – nodal class refference

  • hydro – hydro class refference

Returns:

na

static void initializeforMechanicalStep(General general, Nodal nodal, Hydro hydro, Boudary boudary)#
class HydroBaseMatrixFlow : public OpenFdemAbstract#

Public Functions

inline HydroBaseMatrixFlow()#
inline ~HydroBaseMatrixFlow()#
virtual void initialize(General general, Boudary boudary, Nodal nodal, Hydro hydro)#

Initialize the fracture flow and fracture volume at hydro knnot.

Parameters:
  • boudary – boudary condition class refference

  • nodal – nodal class refference

  • hydro – hydro class refference

Returns:

na

void computeMatrixVolume(General general, Nodal nodal, Element element, Intergration intergration, Hydro hydro, Boudary boudary)#

Compute matrix volume.

Parameters:
  • element

  • hydro

Vector2 computeMatrixFlowRateatIntergration(General general, Element element, Nodal nodal, const Int elementindices, const Int igauss, Intergration intergration, Hydro hydro, Solidmat solidmat)#

compute fracture flow rate at intergration point

Parameters:
  • general

  • element

  • nodal

  • elementindices

  • intPoint

  • hydro

  • solidmat

Returns:

q.i: flow rate vector in each direction

void computeMatrixFlow(General general, Nodal nodal, Element element, Intergration intergration, Hydro hydro, Solidmat solidmat)#
void assembleMatrixFlowRate(Hydro hydro, General general)#
void assembleMatrixFlowVolume(Hydro hydro, General general)#
void updateMatrixFluidinHydroSteps(General general, Nodal nodal, Hydro hydro)#
void updateMatrixFluidinMechanicalSteps(General general, Nodal nodal, Hydro hydro)#
void computeMatrixFlowForce(General general, Element element, Intergration intergration, Nodal nodal, Hydro hydro)#
void matrixFlowRuninHydroSteps(Boudary boudary, Nodal nodal, Hydro hydro, Element element, Intergration intergration, Solidmat solidmat, General general)#
void matrixFlowRuninMechanicalSteps(Boudary boudary, Nodal nodal, Hydro hydro, Element element, Intergration intergration, Solidmat solidmat, General general)#
class HydroBoudary : public OpenFdemAbstract#

Public Static Functions

static void update_hydro_boundary(Hydro hydro, Boudary boundary, Solidmat solidmat, General general, Nodal nodal)#

update boundary condition. This function is not parallised because thermal boundary is not heavy, extra time will costed to step in the parallel.

Parameters:
  • thermal

  • boundary

  • solidmat

  • general

  • nodal

  • element

  • intergration

class HydroComputeForce : public OpenFdemAbstract#
#include <get_fulid_force.h>

Public Static Functions

static void computeFractureFlowForce(General general, Boudary boundary, Edge edge, Element element, Nodal nodal, Hydro hydro)#

compute the thermal force only for triangle element.

Parameters:
  • nodal

  • element

  • thermal

  • solidmat

static void computeGasFlowForce(General general, Boudary boundary, Edge edge, Element element, Nodal nodal, Hydro hydro)#

compute the fluid force for gas flow, appliable for arbitary element shape.

Parameters:
  • general

  • boundary

  • edge

  • element

  • nodal

  • hydro

static void computeMatrixFlowForce(General general, Nodal nodal, Element element, Hydro hydro)#

compute the thermal force for arbitary element type. more time will be cost for triangle element.

Parameters:
  • nodal

  • element

  • intergration

  • thermal

  • solidmat

class HydroFractureFlow : public OpenFdemAbstract#

Public Static Functions

static void initializeforHydroStep(General general, Nodal nodal, Hydro hydro, Boudary boundary)#
static void initializeforMechanicalStep(General general, Nodal nodal, Hydro hydro, Boudary boundary)#
static void updateCZMAperature(General general, Nodal nodal, Cohelement cohelement)#
static void computeFractureFlowRatefromEdges(General general, Nodal nodal, Element element, Cohelement cohelement, Edge edge, Hydro hydro, Solidmat solidmat)#
static void assembleFractureFlow(General general, Hydro hydro)#
static void assembleFractureVolume(General general, Hydro hydro)#
static void updateFractureFlowRateinHydroStep(General general, Nodal nodal, Hydro hydro, Boudary boudary, Solidmat solidmat)#
static void updateFractureFlowRateinMechanicalStep(General general, Nodal nodal, Hydro hydro, Boudary boudary, Solidmat solidmat)#
static void computeFractureFlowRatefromCZMs(General general, Nodal nodal, Cohelement cohelement, Hydro hydro, Solidmat solidmat)#
static void computeFractureSolidLeakoff(General general, Cohelement cohelement, Hydro hydro, Solidmat solidmat)#
static void computeFractureVolume(General general, Cohelement cohelement, Hydro hydro, Solidmat solidmat)#
static void FractureFlowRuninHydroStep(General general, Nodal nodal, Element element, Cohelement cohelement, Edge edge, Hydro hydro, Solidmat solidmat, Boudary boundary)#
static void FractureFlowRuninMechanicalStep(General general, Nodal nodal, Element element, Cohelement cohelement, Edge edge, Hydro hydro, Solidmat solidmat, Boudary boundary)#
class HydroGasFlow : public OpenFdemAbstract#
#include <hydro_gas_flow.h>

Public Static Functions

static void initializeforHydroStep(General general, Nodal nodal, Hydro hydro, Boudary boundary)#
static void initializeforMechanicalStep(General general, Nodal nodal, Hydro hydro, Boudary boundary)#
static void updateCZMAperature(General general, Nodal nodal, Cohelement cohelement)#
static void computeFractureVolume(General general, Cohelement cohelement, Hydro hydro, Solidmat solidmat)#
static void updateGasParameters(General general, Nodal nodal, Hydro hydro, Solidmat solidmat)#
static void computeGasFlowRatefromEdges(General general, Nodal nodal, Element element, Cohelement cohelement, Edge edge, Hydro hydro, Solidmat solidmat)#
static void computeFractureFlowRatefromCZMs(General general, Nodal nodal, Cohelement cohelement, Hydro hydro, Solidmat solidmat)#
static void assembleGasFlow(General general, Hydro hydro)#
static void assembleGasVolume(General general, Hydro hydro)#
static void updateFractureFlowRateinHydroStep(General general, Nodal nodal, Hydro hydro, Solidmat solidmat)#
static void updateFractureFlowRateinMechanicalStep(General general, Nodal nodal, Hydro hydro, Solidmat solidmat)#
static void GasFlowRuninHydroSteps(General general, Nodal nodal, Element element, Cohelement cohelement, Edge edge, Hydro hydro, Solidmat solidmat, Boudary boundary)#
static void GasFlowRuninMechanicalSteps(General general, Nodal nodal, Element element, Cohelement cohelement, Edge edge, Hydro hydro, Solidmat solidmat, Boudary boundary)#
class HydroMatrixFlow : public OpenFdemAbstract#

Public Static Functions

static void initialize(General general, Nodal nodal, Hydro hydro, Boudary boundary)#
static void computeMatrixFlow(General general, Nodal nodal, Element element, Hydro hydro, Solidmat solidmat)#
static void aeembleMatrixFlow(General general, Hydro hydro)#
static void updateMatrixFlowRate(General general, Nodal nodal, Hydro hydro)#
static void matrixFlowRun(General general, Nodal nodal, Element element, Hydro hydro, Solidmat solidmat, Boudary boundary)#
class HydroModule : public OpenFdemAbstract#

Public Static Functions

static void Hydro_module_run(Openfdem openfdem)#
static void updatePreviousMechnicalVolume(General general, Hydro hydro, Nodal nodal)#
static void assembleHydroPressure(General general, Hydro hydro, Nodal nodal, Boudary boudary)#
static void set_hydro_nodel(Nodal nodal, Hydro hydro, Cohelement cohelement, Boudary boudary, Element element)#
static void checkFloatingElements(General general, Hydro hydro, Nodal nodal, Element element, Intergration intergration, Cohelement cohelement)#
static Int get_update_node_wet_boundary(Nodal nodal, long NowStep, Hydro hydro, Boudary boundary)#
namespace ns_common
namespace ns_hydro#
namespace ns_solid#
file get_fulid_force.h
#include <math.h>
#include “common/memory_manager.h”
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “solver/openfdem.h”
file hydro_fracture_flow.h
#include <math.h>
#include “common/memory_manager.h”
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “solid/solid_mechanics_cohesive/solid_interface_element_utils.h”
#include “solver/openfdem.h”
file hydro_gas_flow.h
#include <math.h>
#include “common/memory_manager.h”
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “solver/openfdem.h”
#include “solid/solid_mechanics_cohesive/solid_interface_element_utils.h”

Defines

MAXGASDENSITYRATIO#
MAXGASBULKRATIO#
file hydro_matrix_flow.h
#include <math.h>
#include “common/memory_manager.h”
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “solver/openfdem.h”
file new_hydro_fracture_flow.h
#include <math.h>
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “solid/solid_mechanics_cohesive/solid_interface_element_utils.h”
#include “solver/openfdem.h”
file new_hydro_matrix_flow.h
#include <math.h>
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “solver/openfdem.h”
file openfdem_hydro.h
#include “common/openfdem_common.h”
#include “common/openfdem_enum.h”
#include “common/openfdem_math.h”

Typedefs

typedef struct Hydro_structure *Hydro#
file openfdem_hydro_module.h
#include <math.h>
#include “common/memory_manager.h”
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “solver/openfdem.h”
file update_hydro_boundary.h
#include <math.h>
#include “common/memory_manager.h”
#include “common/openfdem_abstract.h”
#include “common/openfdem_math.h”
#include “solver/openfdem.h”
dir hydro
dir src