Itasca C++ Interface
Toggle main menu visibility
Loading...
Searching...
No Matches
contactmodelfluid.h
1
#pragma once
2
// contactmodelfluid.h
3
4
#include "contactmodel/interface/icontactmodelfluid.h"
5
#include "
contactmodel.h
"
6
7
#ifndef __GNUC__
8
#pragma warning(push)
9
#pragma warning(disable : 4251)
10
#endif
11
namespace
itascaxd
{
12
class
IContactFluid;
13
class
IContactMechanical;
14
}
15
16
namespace
cmodelsxd {
17
using namespace
itasca;
18
using namespace
itascaxd
;
19
20
class
ContactModelFluidState :
public
ContactModelState
{
21
public
:
22
ContactModelFluidState() {};
23
~ContactModelFluidState()
override
{};
24
25
virtual
const
IContactFluid
* getFluidContact()
const
= 0;
26
virtual
const
IContactMechanical
* getMechanicalContact()
const
= 0;
27
const
IProgram
*
getProgram
()
const override
= 0;
28
};
29
30
class
CONTACTMODEL_EXPORT ContactModelFluid :
public
IContactModelFluid,
31
public
ContactModel
{
32
public
:
33
ContactModelFluid();
34
~ContactModelFluid()
override
;
35
36
static
const
char
* getPluginPrefix() {
return
"contactmodelfluid"
; }
37
static
const
char
* getPluginDirectory() {
return
"contactmodels/fluid"
; }
38
IContactModel* getContactModel()
override
{
return
this
; }
39
const
IContactModel* getContactModel()
const override
{
return
this
; }
40
41
double
getActivityDistance()
const override
{
return
0.0; }
42
43
virtual
double
getMassDensity()
const
{
44
throw
Exception
(
"Fluid model {} does not have property fluid mass density."
, getName() );
45
}
46
virtual
double
getMobilityCoef()
const
{
47
throw
Exception
(
"Fluid model {} does not have property mobility coefficient."
, getName() );
48
}
49
virtual
double
getSpecificStorage()
const
{
50
throw
Exception
(
"Fluid model {} does not have property specific storage."
, getName() );
51
}
52
53
// For contact specific plotting
54
void
getSphereList(
const
IContact
*, std::vector<DVect>*, std::vector<double>*,
55
std::vector<double>*)
override
{}
56
#ifdef THREED
57
void
getDiskList(
const
IContact
*, std::vector<DVect>*, std::vector<DVect>*,
58
std::vector<double>*, std::vector<double>*)
override
{}
59
#endif
60
void
getCylinderList(
const
IContact
*, std::vector<DVect>*, std::vector<DVect>*,
61
std::vector<double>*, std::vector<double>*, std::vector<double>*)
override
{}
62
};
63
}
64
#ifndef __GNUC__
65
#pragma warning(pop)
66
#endif
Exception
Base exception class for all Itasca code.
Definition
baseexception.h:10
cmodelsxd::ContactModelFluidState::getProgram
const IProgram * getProgram() const override=0
Return a const pointer to the IPrgram interface.
cmodelsxd::ContactModel::ContactModel
ContactModel()
Constructor.
Definition
contactmodel.cpp:23
cmodelsxd::ContactModelState::ContactModelState
ContactModelState()
Constructor.
Definition
contactmodel.h:51
itasca::IProgram
The main program access point.
Definition
iprogram.h:37
itascaxd::IContactFluid
Definition
icontactfluid.h:14
itascaxd::IContact
Contact class.
Definition
icontact.h:33
itascaxd::IContactMechanical
ContactMechanical class.
Definition
icontactmechanical.h:38
contactmodel.h
Contact model class.
itascaxd
#define itascaxd
Expands to itasca2d in 2D, itasca3d in 3D, for use as a namespace name....
Definition
dim.h:181
itascaxd
Itasca Library standard namespace, specific to 2D or 3D.
Definition
icontactmodule.h:6
common
contactmodel
src
contactmodelfluid.h
Generated by
1.18.0