81 for (
auto &elem : this->
giveDomain(1)->giveElements() ) {
83 elem->computeVectorOf({V_u, V_v, V_w}, VM_Total, tStep, unknowns);
103 for (
int i = 0; i < nsd; ++i ) {
115 F.assemble(Fe, loc, col);
122 H.
resize( F.giveNumberOfRows(), F.giveNumberOfColumns() );
131 solver->solve(*Kff, F, H);
144 const FloatArray &lcoords = gp->giveNaturalCoordinates();
149 n2.
add(gp->giveWeight() * detJ, n);
163 for (
auto &bc : this->
giveDomain(1)->giveBcs() ) {
The representation of EngngModel default unknown numbering.
void enumerate(int maxVal)
Resizes receiver and enumerates from 1 to the maximum value given.
void subtract(const FloatArray &src)
Subtracts array src to receiver.
StokesFlowVelocityHomogenization(int i, EngngModel *_master=NULL)
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0
Evaluates the array of interpolation functions (shape functions) at given point.
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
Access method for default integration rule.
virtual int giveNumberOfDomainEquations(int di, const UnknownNumberingScheme &num)
Returns number of equations for given domain in active (current time step) time step.
virtual double giveTransformationJacobian(const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the determinant of the transformation.
SparseMtrx * createSparseMtrx(SparseMtrxType type)
Creates new instance of sparse matrix corresponding to given keyword.
int max(int i, int j)
Returns bigger value form two given decimals.
void clear()
Clears receiver (zero size).
void integrateNMatrix(FloatMatrix &N, Element &elem, TimeStep *tStep)
virtual FloatArray * giveCoordinates()
Implementation for assembling tangent matrices in standard monolithic FE-problems.
Abstract base class for all finite elements.
int giveNumber()
Returns domain number.
int giveNumberOfSpatialDimensions()
Returns number of spatial dimensions.
virtual ~StokesFlowVelocityHomogenization()
REGISTER_EngngModel(ProblemSequence)
double product() const
Computes the product of receiver values.
Class implementing an array of integers.
virtual FEInterpolation * giveInterpolation() const
void beMaxOf(const FloatArray &a, const FloatArray &b)
Sets receiver to maximum of a or b's respective elements.
This class implements a gravity-like load, or internal source (heat etc.) for transport problems...
void computeSeepage(FloatArray &v, TimeStep *tStep)
Computes the mean velocity and pressure gradient.
virtual void assemble(SparseMtrx &answer, TimeStep *tStep, const MatrixAssembler &ma, const UnknownNumberingScheme &s, Domain *domain)
Assembles characteristic matrix of required type into given sparse matrix.
void applyPressureGradient(const FloatArray &grad)
void beMinOf(const FloatArray &a, const FloatArray &b)
Sets receiver to be minimum of a or b's respective elements.
LinSystSolverType solverType
Linear solver type.
SparseMtrxType
Enumerative type used to identify the sparse matrix type.
void times(double f)
Multiplies receiver by factor f.
Wrapper around element definition to provide FEICellGeometry interface.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
double giveAreaOfRVE()
Compute area of domain (includes holes)
Implements the engineering model to solve incompressible Stokes flow.
void beNMatrixOf(const FloatArray &n, int nsd)
Assigns the receiver to be a repeated diagonal matrix.
void computeTangent(FloatMatrix &answer, TimeStep *tStep)
void setDeadWeighComponents(FloatArray newComponents)
Class representing vector of real numbers.
SparseLinearSystemNM * createSparseLinSolver(LinSystSolverType st, Domain *d, EngngModel *m)
Creates new instance of SparseLinearSystemNM corresponding to given type.
Implementation of matrix containing floating point numbers.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
void beTProductOf(const FloatMatrix &a, const FloatMatrix &b)
Assigns to the receiver product of .
void times(double s)
Multiplies receiver with scalar.
void beTranspositionOf(const FloatMatrix &src)
Assigns to the receiver the transposition of parameter.
ClassFactory & classFactory
void zero()
Zeroes all coefficient of receiver.
int min(int i, int j)
Returns smaller value from two given decimals.
std::vector< std::unique_ptr< Element > > & giveElements()
Abstract base class representing the "problem" under consideration.
the oofem namespace is to define a context or scope in which all oofem names are defined.
Domain * giveDomain(int n)
Service for accessing particular problem domain.
DofManager * giveDofManager(int n)
Service for accessing particular domain dof manager.
void negated()
Switches the sign of every coefficient of receiver.
Class representing integration point in finite element program.
Class representing solution step.
void add(const FloatArray &src)
Adds array src to receiver.