35#ifndef transportmaterial_h
36#define transportmaterial_h
78 const char *
giveClassName()
const override {
return "TransportMaterialStatus"; }
137 const char *
giveClassName()
const override {
return "TransportMaterialStatus"; }
235 MatResponseMode mode,
253 TimeStep *tStep)
const override = 0;
283 std::unique_ptr<MaterialStatus>
CreateStatus(
GaussPoint *gp)
const override {
return std::make_unique<TransportMaterialStatus>(gp); }
void restoreContext(DataStream &stream, ContextMode mode) override
void setTempTemperatureGradient(const FloatArrayF< 3 > &newGradient)
Set gradient.
FloatArrayF< 3 > h_gradient
Humidity gradient.
const FloatArrayF< 3 > & giveTempHumidityFlux() const
Returns last flux.
const FloatArrayF< 3 > & giveHumidityFlux() const
Returns last flux.
const char * giveClassName() const override
double giveTempHumidity() const
Return last field.
FloatArrayF< 3 > t_gradient
Temperature gradient.
FloatArrayF< 3 > t_flux
Heat flux.
const FloatArrayF< 3 > & giveTempHumidityGradient() const
Return last gradient.
FloatArrayF< 3 > temp_t_flux
Temp heat flux.
void saveContext(DataStream &stream, ContextMode mode) override
void initTempStatus() override
void setTempHumidityGradient(const FloatArrayF< 3 > &newGradient)
Set gradient.
FloatArrayF< 3 > temp_h_flux
Temp humidity flux.
double temperature
Temperature.
const FloatArrayF< 3 > & giveHumidityGradient() const
Return last gradient.
const FloatArrayF< 3 > & giveHeatFlux() const
Returns last flux.
FloatArrayF< 3 > temp_h_gradient
Temp humidity gradient.
FloatArrayF< 3 > h_flux
Humidity flux.
void setTempHumidity(double newField)
Set field.
double giveTemperature() const
Return last field.
double temp_humidity
Temp humidity.
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
const FloatArrayF< 3 > & giveTempTemperatureGradient() const
Return last gradient.
FloatArrayF< 3 > temp_t_gradient
Temp temperature gradient.
const FloatArrayF< 3 > & giveTempHeatFlux() const
Returns last flux.
void setTempTemperature(double newField)
Set field.
double giveHumidity() const
Return last field.
void updateYourself(TimeStep *tStep) override
void setTempHumidityFlux(const FloatArrayF< 3 > &newFlux)
Set flux.
const FloatArrayF< 3 > & giveTemperatureGradient() const
Return last gradient.
HeMoTransportMaterialStatus(GaussPoint *g)
double giveTempTemperature() const
Return last field.
void setTempHeatFlux(const FloatArrayF< 3 > &newFlux)
Set flux.
double temp_temperature
Temp temperature.
MaterialStatus(GaussPoint *g)
Material(int n, Domain *d)
double giveField() const
Return last field.
FloatArrayF< 3 > temp_gradient
Temp. Gradient.
void updateYourself(TimeStep *tStep) override
double giveTempField() const
Return last field.
void initTempStatus() override
double maturity
A scalar containing maturity (integration of temperature over time).
const char * giveClassName() const override
TransportMaterialStatus(GaussPoint *g)
void setTempField(double newField)
Set field.
void setTempFlux(const FloatArrayF< 3 > &newFlux)
Set flux.
void restoreContext(DataStream &stream, ContextMode mode) override
void setTempGradient(const FloatArrayF< 3 > &newGradient)
Set gradient.
double field
General field (temperature, concentration, etc.).
const FloatArrayF< 3 > & giveGradient() const
Return last gradient.
const FloatArrayF< 3 > & giveFlux() const
Returns last flux.
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
void saveContext(DataStream &stream, ContextMode mode) override
FloatArrayF< 3 > temp_flux
Vector containing the last computed flux.
FloatArrayF< 3 > gradient
General gradient.
FloatArrayF< 3 > flux
General flux (energy flux, mass flow, etc.).
const FloatArrayF< 3 > & giveTempFlux() const
Returns last flux.
const FloatArrayF< 3 > & giveTempGradient() const
Return last gradient.
double temp_field
Temp. Primary field.
double giveMaturity() const
Returns maturity.
virtual FloatArrayF< 3 > computeFlux3D(const FloatArrayF< 3 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 2, 2 > computeTangent2D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
virtual void updateInternalState(const FloatArray &state, GaussPoint *gp, TimeStep *tStep)
virtual double giveHumidity(GaussPoint *gp, ValueModeType mode) const
std::pair< FloatArrayF< 2 >, FloatArrayF< 2 > > computeHeMoFlux2D(const FloatArrayF< 2 > &grad_t, const FloatArrayF< 2 > &grad_w, double t, double h, GaussPoint *gp, TimeStep *tStep) const
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
virtual std::pair< FloatArrayF< 3 >, FloatArrayF< 3 > > computeHeMoFlux3D(const FloatArrayF< 3 > &grad_t, const FloatArrayF< 3 > &grad_w, double t, double h, GaussPoint *gp, TimeStep *tStep) const
virtual void computeInternalSourceVector(FloatArray &val, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const
virtual FloatMatrixF< 3, 3 > computeTangent3D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const =0
FloatMatrixF< 1, 1 > computeTangent1D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
std::pair< FloatArrayF< 1 >, FloatArrayF< 1 > > computeHeMoFlux1D(const FloatArrayF< 1 > &grad_t, const FloatArrayF< 1 > &grad_w, double t, double h, GaussPoint *gp, TimeStep *tStep) const
virtual double giveCharacteristicValue(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override=0
TransportMaterial(int n, Domain *d)
virtual void giveCharacteristicMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
virtual void giveFluxVector(FloatArray &answer, GaussPoint *gp, const FloatArray &grad, const FloatArray &field, TimeStep *tStep) const
FloatArrayF< 1 > computeFlux1D(const FloatArrayF< 1 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const
virtual bool hasInternalSource() const
FloatArrayF< 2 > computeFlux2D(const FloatArrayF< 2 > &grad, double field, GaussPoint *gp, TimeStep *tStep) const