49TwoFluidMaterial :: checkConsistency()
69 FluidDynamicMaterial :: giveInputRecord(input);
85TwoFluidMaterial :: give(
int aProperty,
GaussPoint *gp)
const
100 answer.
times(1.0 - vof);
102 answer.
add(vof, tmp);
107std::unique_ptr<MaterialStatus>
111 return std::make_unique<TwoFluidMaterialStatus>(gp,
slaveMaterial);
115TwoFluidMaterial :: giveMaterial(
int i)
const
129 auto stress = (1.0 - vof) * v0 + vof * v1;
146 return (1.0 - vof) * a0 + vof * a1;
157 if ( ( vof.
at(1) < 0. ) || ( vof.
at(1) > 1.0 ) ) {
170TwoFluidMaterialStatus :: TwoFluidMaterialStatus(
GaussPoint *
gp,
const std::array<Material*, 2> &slaveMaterial) :
172 slaveGps{{{
nullptr, 0, 0.,
gp->giveMaterialMode()}, {
nullptr, 0, 0.,
gp->giveMaterialMode()}}}
174 for (
int i = 0; i < 2; ++i ) slaveGps[i].setMaterialStatus( slaveMaterial[i]->CreateStatus( &slaveGps[i] ) );
179TwoFluidMaterialStatus :: printOutputAt(FILE *file,
TimeStep *tStep)
const
181 for (
auto &
gp :
slaveGps )
gp.giveMaterialStatus()->printOutputAt(file, tStep);
186TwoFluidMaterialStatus :: updateYourself(
TimeStep *tStep)
188 FluidDynamicMaterialStatus :: updateYourself(tStep);
189 for (
auto &
gp :
slaveGps )
gp.giveMaterialStatus()->updateYourself(tStep);
194TwoFluidMaterialStatus :: initTempStatus()
196 FluidDynamicMaterialStatus :: initTempStatus();
204 for (
auto &
gp :
slaveGps )
gp.giveMaterialStatus()->saveContext(stream, mode);
211 for (
auto &
gp :
slaveGps )
gp.giveMaterialStatus()->restoreContext(stream, mode);
#define REGISTER_Material(class)
Domain * domain
Link to domain object, useful for communicating with other FEM components.
void add(const FloatArray &src)
FluidDynamicMaterialStatus(GaussPoint *g)
Constructor - creates new TransportMaterialStatus with number n, belonging to domain d and integratio...
void letDeviatoricStrainRateVectorBe(const FloatArrayF< 6 > &v)
void letDeviatoricStressVectorBe(const FloatArrayF< 6 > &v)
FluidDynamicMaterial(int n, Domain *d)
Element * giveElement()
Returns corresponding element to receiver.
GaussPoint * gp
Associated integration point.
virtual void giveElementMaterialMixture(FloatArray &answer, int ielem)=0
virtual void initTempStatus()
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
GaussPoint * giveSlaveGaussPoint0()
GaussPoint * giveSlaveGaussPoint1()
std::array< GaussPoint, 2 > slaveGps
FluidDynamicMaterial * giveMaterial(int i) const
double giveTempVOF(GaussPoint *gp) const
#define _IFT_TwoFluidMaterial_mat