50 #define _IFT_PFEM_Name "pfem" 51 #define _IFT_PFEM_deltat "deltat" 52 #define _IFT_PFEM_mindeltat "mindeltat" 53 #define _IFT_PFEM_alphashapecoef "alphashapecoef" 54 #define _IFT_PFEM_particalRemovalRatio "removalratio" 55 #define _IFT_PFEM_printVolumeReport "volumereport" 56 #define _IFT_PFEM_discretizationScheme "scheme" 57 #define _IFT_PFEM_associatedMaterial "material" 58 #define _IFT_PFEM_associatedCrossSection "cs" 59 #define _IFT_PFEM_pressureBC "pressure" 60 #define _IFT_PFEM_rtolv "rtolv" 61 #define _IFT_PFEM_rtolp "rtolp" 62 #define _IFT_PFEM_maxiter "maxiter" 137 std :: unique_ptr< SparseMtrx >
pLhs;
192 , PressureField(this, 1, FT_Pressure, 1)
193 , VelocityField(this, 1, FT_Velocity, 1)
196 , prescribedVns(true)
201 printVolumeReport =
false;
202 discretizationScheme = 1;
203 associatedCrossSection = 0;
204 associatedMaterial = 0;
205 associatedPressureBC = 0;
216 virtual void updateYourself(
TimeStep *tStep);
224 TimeStep *giveSolutionStepWhenIcApply();
230 virtual void preInitializeNextStep();
233 virtual int forceEquationNumbering(
int id);
242 virtual int checkConsistency();
255 virtual void printDofOutputAt(FILE *stream,
Dof *iDof,
TimeStep *atTime);
259 virtual int giveNewEquationNumber(
int domain,
DofIDItem);
260 virtual int giveNewPrescribedEquationNumber(
int domain,
DofIDItem);
270 void resetEquationNumberings();
286 void updateInternalState(
TimeStep *);
290 void deactivateTooCloseParticles();
double domainVolume
Area or volume of the fluid domain, which can be controlled.
LinSystSolverType
The values of this type should be related not to specific solvers, but more to specific packages that...
int giveAssociatedCrossSectionNumber()
Returns number of cross section to be associated with created elements.
PrimaryField PressureField
Pressure field.
Implementation of callback class for assembling right-hand side vector of laplacian multiplied by vel...
Implementation of callback class for assembling right-hand side of velocity equations.
int discretizationScheme
Explicit or implicit time discretization.
const char * giveClassName() const
Returns class name of the receiver.
int associatedMaterial
Number of material to associate with created elements.
Velocity numbering scheme for PFEM purposes.
PFEMCorrectionRhsAssembler(double deltaT)
Numbering scheme that takes into account only pressure DOFs in PFEM problems.
int giveAssociatedMaterialNumber()
Returns number of material to be associated with created elements.
Abstract class representing field of primary variables (those, which are unknown and are typically as...
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Callback class for assembling pressure laplacian matrix.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
This base class is an abstraction for all numerical methods solving sparse linear system of equations...
This class represents PFEM method for solving incompressible Navier-Stokes equations.
PFEM(int i, EngngModel *_master=NULL)
This base class is an abstraction for numerical algorithm.
Implementation of callback class for assembling right-hand side of pressure equations.
Abstract base class for all finite elements.
SparseLinearSystemNM * nMethod
Numerical method used to solve the problem.
Base class for dof managers.
PrimaryField VelocityField
Velocity field.
SparseMtrxType sparseMtrxType
Used type of sparse matrix.
Class implementing an array of integers.
Implementation of callback class for assembling right-hand side vector of mass matrix multiplied by v...
double alphaShapeCoef
Value of alpha coefficient for the boundary recognition.
double particleRemovalRatio
Element side ratio for the removal of the close partices.
double deltaT
Time step length.
double minDeltaT
Minimal value of time step.
Callback class for assembling specific types of vectors.
Callback class for assembling specific types of matrices.
DofIDItem
Type representing particular dof type.
int giveAssociatedPressureBC()
Returns number of zero pressure boundary condition to be prescribed on free surface.
SparseMtrxType
Enumerative type used to identify the sparse matrix type.
FloatArray vLhs
Left-hand side matrix for the velocity equations.
Abstract base class allowing to control the way, how equations are assigned to individual DOFs...
LinSystSolverType solverType
Used solver type for linear system of equations.
virtual void vectorFromElement(FloatArray &vec, Element &element, TimeStep *tStep, ValueModeType mode) const
fMode giveFormulation()
Indicates type of non linear computation (total or updated formulation).
FloatArray avLhs
Left-hand side matrix for the auxiliary velocity equations.
VelocityNumberingScheme vns
Velocity numbering.
PressureNumberingScheme pns
Pressure numbering.
virtual void locationFromElement(IntArray &loc, Element &element, const UnknownNumberingScheme &s, IntArray *dofIds=nullptr) const
Default implementation takes all the DOF IDs.
Class representing vector of real numbers.
int associatedPressureBC
Number of pressure boundary condition to be prescribed on free surface.
virtual int requiresUnknownsDictionaryUpdate()
Indicates if EngngModel requires Dofs dictionaries to be updated.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
VelocityNumberingScheme prescribedVns
Prescribed velocity numbering.
Numbering scheme for auxiliary velocity in PFEM problems.
fMode
Type representing the type of formulation (total or updated) of non-linear computation.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
double rtolv
Convergence tolerance.
std::unique_ptr< SparseMtrx > pLhs
Left-hand side matrix for the pressure equations.
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.
bool printVolumeReport
Flag for volume report.
FloatArray AuxVelocity
Array of auxiliary velocities used during computation.
Abstract class Dof represents Degree Of Freedom in finite element mesh.
int maxiter
Max number of iterations.
AuxVelocityNumberingScheme avns
Auxiliary Velocity numbering.
int associatedCrossSection
Number of cross section to associate with created elements.
Class representing solution step.