48using namespace tinyxml2;
59#define _IFT_CemhydMat_Name "cemhydmat"
60#define _IFT_CemhydMat_conductivitytype "conductivitytype"
61#define _IFT_CemhydMat_capacitytype "capacitytype"
62#define _IFT_CemhydMat_densitytype "densitytype"
63#define _IFT_CemhydMat_eachgp "eachgp"
64#define _IFT_CemhydMat_nowarnings "nowarnings"
65#define _IFT_CemhydMat_scaling "scaling"
66#define _IFT_CemhydMat_reinforcementDegree "reinforcementdegree"
67#define _IFT_CemhydMat_inputFileName "file"
179 void InitializePy(
const char *inp);
184 double GivePower(
double GiveTemp,
double TargTime);
185 double MoveCycles(
double GiveTemp,
int cycles);
186 int MoveToDoH(
double GiveTemp,
double DesiredDoH,
int maxcyc);
187 int MoveToTime(
double GiveTemp,
double TargTime);
204 void AnalyticHomogenizationConcrete(
double E_paste_inp,
double nu_paste_inp,
double *E_paste,
double *nu_paste,
double *E_mortar,
double *nu_mortar,
double &E_concrete,
double &nu_concrete);
205 void GetInitClinkerPhases(
double &c3s,
double &c2s,
double &c3a,
double &c4af,
double &gypsum,
double &hemi,
double &anh);
335 long cx(
int x,
int y,
int z,
int a,
int b,
int c);
336 long cy(
int x,
int y,
int z,
int a,
int b,
int c);
337 long cz(
int x,
int y,
int z,
int a,
int b,
int c);
474 double ran1(
int *idum);
476 int chksph(
int xin,
int yin,
int zin,
int radd,
int wflg,
int phasein,
int phase2);
477 int gsphere(
int numgen,
long int *numeach,
int *sizeeach,
int *pheach);
479 void drawfloc(
int xin,
int yin,
int zin,
int radd,
int phasein,
int phase2);
480 int chkfloc(
int xin,
int yin,
int zin,
int radd);
535 int surfpix(
int xin,
int yin,
int zin);
537 int countem(
int xp,
int yp,
int zp,
int phin);
538 void sysinit(
int ph1,
int ph2);
539 void sysscan(
int ph1,
int ph2);
542 int movepix(
int ntomove,
int ph1,
int ph2);
543 void sinter3d(
int ph1id,
int ph2id,
float rhtarget);
545 void rand3d(
int phasein,
int phaseout,
float xpt);
558 int chckedge(
int xck,
int yck,
int zck);
559 void passone(
int low,
int high,
int cycid,
int cshexflag);
560 int loccsh(
int xcur,
int ycur,
int zcur,
int extent);
561 int countbox(
int boxsize,
int qx,
int qy,
int qz);
562 int countboxc(
int boxsize,
int qx,
int qy,
int qz);
564 void extslagcsh(
int xpres,
int ypres,
int zpres);
566 void addrand(
int randid,
long int nneed);
572 void disrealnew(
double GiveTemp,
double TargTime,
int flag);
573 int burn3d(
int npix,
int d1,
int d2,
int d3);
574 int burnset(
int d1,
int d2,
int d3);
576 int moveone(
int *xloc,
int *yloc,
int *zloc,
int *act,
int sumold);
577 int edgecnt(
int xck,
int yck,
int zck,
int ph1,
int ph2,
int ph3);
579 int movecsh(
int xcur,
int ycur,
int zcur,
int finalstep,
int cycorig);
580 void extfh3(
int xpres,
int ypres,
int zpres);
581 int extettr(
int xpres,
int ypres,
int zpres,
int etype);
583 void extgyps(
int xpres,
int ypres,
int zpres);
584 int moveanh(
int xcur,
int ycur,
int zcur,
int finalstep,
float nucprgyp);
585 int movehem(
int xcur,
int ycur,
int zcur,
int finalstep,
float nucprgyp);
586 int extfreidel(
int xpres,
int ypres,
int zpres);
587 int extstrat(
int xpres,
int ypres,
int zpres);
588 int movegyp(
int xcur,
int ycur,
int zcur,
int finalstep);
589 int movecacl2(
int xcur,
int ycur,
int zcur,
int finalstep);
590 int movecas2(
int xcur,
int ycur,
int zcur,
int finalstep);
591 int moveas(
int xcur,
int ycur,
int zcur,
int finalstep);
592 int movecaco3(
int xcur,
int ycur,
int zcur,
int finalstep);
593 void extafm(
int xpres,
int ypres,
int zpres);
594 int moveettr(
int xcur,
int ycur,
int zcur,
int finalstep);
595 void extpozz(
int xpres,
int ypres,
int zpres);
596 int movefh3(
int xcur,
int ycur,
int zcur,
int finalstep,
float nucprob);
597 int movech(
int xcur,
int ycur,
int zcur,
int finalstep,
float nucprob);
598 void extc3ah6(
int xpres,
int ypres,
int zpres);
599 int movec3a(
int xcur,
int ycur,
int zcur,
int finalstep,
float nucprob);
600 int movec4a(
int xcur,
int ycur,
int zcur,
int finalstep,
float nucprob);
601 void hydrate(
int fincyc,
int stepmax,
float chpar1,
float chpar2,
float hgpar1,
float hgpar2,
float fhpar1,
float fhpar2,
float gypar1,
float gypar2);
616 void nrerror(
const char *error_text);
617 float *
vector(
int nl,
int nh);
619 double *
dvector(
int nl,
int nh);
621 float **
matrix_cem(
int nrl,
int nrh,
int ncl,
int nch);
622 double **
dmatrix(
int nrl,
int nrh,
int ncl,
int nch);
623 int **
imatrix(
int nrl,
int nrh,
int ncl,
int nch);
624 float **
submatrix(
float **a,
int oldrl,
int oldrh,
int oldcl,
int oldch,
int newrl,
int newcl);
632 float **
convert_matrix(
float *a,
int nrl,
int nrh,
int ncl,
int nch);
691 double Mass_tot_concrete,
Cp_SCM,
Cp_FA,
Cp_CA,
Cp_inert,
Mass_SCM_frac,
Mass_FA_frac,
Mass_CA_frac,
Mass_inert_frac,
Concrete_thermal_conductivity,
Concrete_bulk_density;
734 FILE *
heatfile, *
chsfile, *
ptmpfile, *
movfile, *
pHfile, *
micfile, *
fileperc, *
percfile, *
disprobfile, *
phasfile, *
perc_phases, *
CSHfile, *
infoperc, *
infoUnperc;
770 double Vol_cement_clinker_gypsum,
Vol_cement_SCM,
Vol_water,
Vol_FA,
Vol_CA,
Vol_inert_filler,
Vol_entrained_entrapped_air,
Grain_average_FA,
Grain_average_CA,
ITZ_thickness,
ITZ_Young_red,
Young_SCM,
Poisson_SCM,
Young_FA,
Poisson_FA,
Young_CA,
Poisson_CA,
Young_inert,
Poisson_inert;
#define _IFT_CemhydMat_Name
void QueryNumAttributeExt(XMLDocument *xmlFile, const char *elementName, int position, int &val)
int movech(int xcur, int ycur, int zcur, int finalstep, float nucprob)
double Vol_cement_clinker_gypsum
int extfreidel(int xpres, int ypres, int zpres)
double GiveTotCemHeat(void)
float ** matrix_cem(int nrl, int nrh, int ncl, int nch)
const char * giveClassName() const override
float ** convert_matrix(float *a, int nrl, int nrh, int ncl, int nch)
void free_matrix(float **m, int nrl, int nrh, int ncl)
unsigned int * CSH_vicinity
void free_dvector(double *v, int nl)
int IsConnected(int cx, int cy, int cz, int dx, int dy, int dz)
int movefh3(int xcur, int ycur, int zcur, int finalstep, float nucprob)
CemhydMatStatus(GaussPoint *gp, CemhydMatStatus *CemStat, CemhydMat *cemhydmat, bool withMicrostructure)
int edgecnt(int xck, int yck, int zck, int ph1, int ph2, int ph3)
void rand3d(int phasein, int phaseout, float xpt)
void makeinert(long int ndesire)
void zroots(fcomplex_cem a[], int m, fcomplex_cem roots[], int polish)
int IsSolidPhase(int phase)
int countem(int xp, int yp, int zp, int phin)
long cy(int x, int y, int z, int a, int b, int c)
void laguer(fcomplex_cem a[], int m, fcomplex_cem *x, float eps, int polish)
double Mass_cement_concrete
void nrerror(const char *error_text)
int burn3d(int npix, int d1, int d2, int d3)
int movecacl2(int xcur, int ycur, int zcur, int finalstep)
void addrand(int randid, long int nneed)
void free_ivector(int *v, int nl)
GaussPoint * gp
Stores GP of the CemhydMatStatus.
void hydrate(int fincyc, int stepmax, float chpar1, float chpar2, float hgpar1, float hgpar2, float fhpar1, float fhpar2, float gypar1, float gypar2)
double GivePower(double GiveTemp, double TargTime)
int movec3a(int xcur, int ycur, int zcur, int finalstep, float nucprob)
void alloc_int_3D(int ***(&mask), long SYSIZE)
int chksph(int xin, int yin, int zin, int radd, int wflg, int phasein, int phase2)
int movecaco3(int xcur, int ycur, int zcur, int finalstep)
fcomplex_cem Csub(fcomplex_cem a, fcomplex_cem b)
int loccsh(int xcur, int ycur, int zcur, int extent)
fcomplex_cem Conjg(fcomplex_cem z)
fcomplex_cem Csqrt(fcomplex_cem z)
void drawfloc(int xin, int yin, int zin, int radd, int phasein, int phase2)
void free_dmatrix(double **m, int nrl, int nrh, int ncl)
int Calculate_elastic_homogenization
Flag to proceed percolation filtering and elastic homogenization.
fcomplex_cem ComplexCemhyd(float re, float im)
int movegyp(int xcur, int ycur, int zcur, int finalstep)
double IPVolume
Volume associated to master IP of one CemhydMat.
int movec4a(int xcur, int ycur, int zcur, int finalstep, float nucprob)
double giveAverageTemperature(void)
double ** dmatrix(int nrl, int nrh, int ncl, int nch)
void QueryStringAttributeExt(XMLDocument *xmlFile, const char *elementName, int position, char *chars)
void WriteUnsortedList(int px, int py, int pz)
void extc3ah6(int xpres, int ypres, int zpres)
int surfpix(int xin, int yin, int zin)
void GenerateConnNumbers(void)
double GiveDoHActual(void)
Return degree of hydration of the receiver.
void setAverageTemperatureVolume(double temperature, double volume)
Auxiliary function for temperature averaging over GPs.
void outputImageFilePerc(void)
int gsphere(int numgen, long int *numeach, int *sizeeach, int *pheach)
long cz(int x, int y, int z, int a, int b, int c)
void disrealnew(double GiveTemp, double TargTime, int flag)
void alloc_shortint_3D(short int ***(&mic), long SYSIZE)
float * vector(int nl, int nh)
float Cabs(fcomplex_cem z)
struct percolatedpath * current
fcomplex_cem Cdiv(fcomplex_cem a, fcomplex_cem b)
void dealloc_shortint_3D(short int ***(&mic), long SYSIZE)
double * last_values
Array for storing temporary values (elastic properties etc.).
int icyc
Cycle of celular automata.
void free_convert_matrix(float **b, int nrl)
void free_submatrix(float *b, int nrl)
void outputImageFileUnperc(char ***m)
void alloc_long_3D(long ***(&mic), long SYSIZE)
int MoveToTime(double GiveTemp, double TargTime)
void updateYourself(TimeStep *tStep) override
void PercolateForOutput(void)
double averageTemperature
Average temperature through integration points.
double init_material_time
Inital material time for growing problems.
double PartHeat
The last incremental heat returned from a GP.
int chckedge(int xck, int yck, int zck)
void extfh3(int xpres, int ypres, int zpres)
void extgyps(int xpres, int ypres, int zpres)
int burnset(int d1, int d2, int d3)
void AnalyticHomogenizationPaste(double &E, double &nu, int perc_unperc_flag)
void sinter3d(int ph1id, int ph2id, float rhtarget)
struct percolatedpath * last
void passone(int low, int high, int cycid, int cshexflag)
int moveanh(int xcur, int ycur, int zcur, int finalstep, float nucprgyp)
int movecas2(int xcur, int ycur, int zcur, int finalstep)
void extafm(int xpres, int ypres, int zpres)
void dealloc_int_3D(int ***(&mask), long SYSIZE)
void disrealnew_init(void)
double Vol_entrained_entrapped_air
void extslagcsh(int xpres, int ypres, int zpres)
int * ivector(int nl, int nh)
double Concrete_thermal_conductivity
int movehem(int xcur, int ycur, int zcur, int finalstep, float nucprgyp)
void GetInitClinkerPhases(double &c3s, double &c2s, double &c3a, double &c4af, double &gypsum, double &hemi, double &anh)
void dealloc_long_3D(long ***(&mic), long SYSIZE)
void CSHbox(unsigned int *CSH_vicinity)
void GetInputParams(char *my_string)
void CountPercolation(int &tot_perc, int &tot_unperc)
int extstrat(int xpres, int ypres, int zpres)
int moveettr(int xcur, int ycur, int zcur, int finalstep)
fcomplex_cem Cmul(fcomplex_cem a, fcomplex_cem b)
int countbox(int boxsize, int qx, int qy, int qz)
void free_vector(float *v, int nl)
float ** submatrix(float **a, int oldrl, int oldrh, int oldcl, int oldch, int newrl, int newcl)
int movepix(int ntomove, int ph1, int ph2)
double * dvector(int nl, int nh)
int moveone(int *xloc, int *yloc, int *zloc, int *act, int sumold)
void sysinit(int ph1, int ph2)
double MoveCycles(double GiveTemp, int cycles)
void alloc_double_3D(double ***(&mic), long SYSIZE)
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
void initializeMicrostructure(void)
int movecsh(int xcur, int ycur, int zcur, int finalstep, int cycorig)
virtual ~CemhydMatStatus()
int chkfloc(int xin, int yin, int zin, int radd)
double computeConcreteCapacityBentz(void)
double GiveDoHLastCyc(void)
void AnalyticHomogenizationConcrete(double E_paste_inp, double nu_paste_inp, double *E_paste, double *nu_paste, double *E_mortar, double *nu_mortar, double &E_concrete, double &nu_concrete)
long int target_anhydrite
int MoveToDoH(double GiveTemp, double DesiredDoH, int maxcyc)
double Concrete_bulk_density
void alloc_char_3D(char ***(&mic), long SYSIZE)
void dealloc_double_3D(double ***(&mic), long SYSIZE)
void dealloc_char_3D(char ***(&mic), long SYSIZE)
int readInputFileAndInitialize(const char *inp, bool generateMicrostructure)
fcomplex_cem Cadd(fcomplex_cem a, fcomplex_cem b)
int ** imatrix(int nrl, int nrh, int ncl, int nch)
void burn_phases(int d1, int d2, int d3)
fcomplex_cem RCmul(float x, fcomplex_cem a)
void free_imatrix(int **m, int nrl, int nrh, int ncl)
void extpozz(int xpres, int ypres, int zpres)
void sysscan(int ph1, int ph2)
double giveTotalVolume(void)
void constructor_init(void)
int NumSol(int cx, int cy, int cz)
int countboxc(int boxsize, int qx, int qy, int qz)
int extettr(int xpres, int ypres, int zpres, int etype)
long cx(int x, int y, int z, int a, int b, int c)
int moveas(int xcur, int ycur, int zcur, int finalstep)
FloatArray scaling
Array containing scaling factors for density, conductivity and capacity.
virtual int giveCycleNumber(GaussPoint *gp)
Returns cycle number at the closest cycle after the target time.
const char * giveClassName() const override
int conductivityType
Use different methods to evaluate material parameters.
virtual double giveConcreteCapacity(GaussPoint *gp, TimeStep *tStep) const
Returns concrete thermal capacity depending on chosen type.
double giveCharacteristicValue(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
Compute heat thermal capacity per volume.
MaterialStatus * CreateStatus(GaussPoint *gp) const override
virtual double giveConcreteDensity(GaussPoint *gp, TimeStep *tStep) const
Returns concrete density depending on chosen type.
int eachGP
Assign a separate microstructure in each integration point.
virtual void storeWeightTemperatureProductVolume(Element *element, TimeStep *tStep)
Store temperatures multiplied with volume around GPs - need before temperature averaging.
CemhydMat(int n, Domain *d)
Constructor.
void computeInternalSourceVector(FloatArray &val, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const override
virtual double giveTimeOfCycle(GaussPoint *gp)
Returns time of the CEMHYD3D at the first cycle after the target time.
int initMaterial(Element *element) override
void initializeFrom(InputRecord &ir) override
std::string XMLfileName
XML input file name for CEMHYD3D.
double giveIsotropicConductivity(GaussPoint *gp, TimeStep *tStep) const override
Returns concrete heat conductivity depending on chosen type.
bool hasInternalSource() const override
virtual double giveDoHActual(GaussPoint *gp)
Returns DoH of the closest CEMHYD3D cycle after the target time.
virtual void clearWeightTemperatureProductVolume(Element *element)
Clear temperatures multiplied with volume around GPs - need before temperature averaging.
int reinforcementDegree
Degree of reinforcement, if defined, reinforcement effect for conductivity and capacity is accounted ...
const char * giveInputRecordName() const override
Returns input record name of the receiver.
virtual void averageTemperature()
Perform averaging on a master CemhydMatStatus.
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
IntArray nowarnings
Array containing warnings supression for density, conductivity, capacity, high temperature.
CemhydMatStatus * MasterCemhydMatStatus
IsotropicHeatTransferMaterial(int n, Domain *d)
TransportMaterialStatus(GaussPoint *g)
struct oofem::FCOMPLEX fcomplex_cem
struct cluster * nextpart
struct percolatedpath * next
struct percolatedpath * prev