49#define _IFT_DGProblem_Name "dgproblem"
50#define _IFT_DGProblem_initt "initt"
51#define _IFT_DGProblem_deltat "deltat"
52#define _IFT_DGProblem_deltatfunction "deltatfunction"
53#define _IFT_DGProblem_prescribedtimes "prescribedtimes"
54#define _IFT_DGProblem_alpha "alpha"
55#define _IFT_DGProblem_keepTangent "keeptangent"
56#define _IFT_DGProblem_exportFields "exportfields"
57#define _IFT_DGProblem_problemType "ptype"
58#define _IFT_DGProblem_preprocessFEM2DG "fem2dg"
61#define _IFT_DGProblem_sets2preprocess "boundarysets"
62#define _IFT_DGProblem_targetBoundaryNodeSets "targetboundarynodesets"
64#define _IFT_DGProblem_targetAllNodeSet "targetallnodeset"
65#define _IFT_DGProblem_targetAllElementSet "targetallelementset"
138 std :: unique_ptr< DofDistributedPrimaryField >
field;
148 std :: unique_ptr< SparseLinearSystemNM >
nMethod;
bool isDofTypeCompatible(dofType type) const override
Returns true if dof of given type is allowed to be associated to receiver.
const char * giveClassName() const override
ClonedDofManager(int i, Domain *d, int master)
const char * giveInputRecordName() const override
void printOutputAt(FILE *file, TimeStep *tStep) override
void addElement(int elem, int boundaryID)
virtual ~DGBoundaryEntity()
IntArray elementBoundaryIDs
double initT
Initial time from which the computation runs. Default is zero.
void solveYourselfAt(TimeStep *tStep) override
FloatArray prescribedTimes
Specified times where the problem is solved.
int dtFunction
Associated time function for time step increment.
FloatArray internalForces
TimeStep * giveSolutionStepWhenIcApply(bool force=false) override
void updateInternalRHS(FloatArray &answer, TimeStep *tStep, Domain *d, FloatArray *eNorm) override
int checkConsistency() override
double giveFinalTime() override
TimeStep * giveNextStep() override
Returns next time step (next to current step) of receiver.
SparseMtrxType sparseMtrxType
double giveUnknownComponent(ValueModeType mode, TimeStep *tStep, Domain *d, Dof *dof) override
int giveUnknownDictHashIndx(ValueModeType mode, TimeStep *tStep) override
LinSystSolverType solverType
fMode giveFormulation() override
FieldPtr giveField(FieldType key, TimeStep *tStep) override
std ::unique_ptr< SparseLinearSystemNM > nMethod
Numerical method used to solve the problem.
DGProblem(int i, EngngModel *_master)
int requiresUnknownsDictionaryUpdate() override
void updateDomainLinks() override
const char * giveInputRecordName() const
std ::unique_ptr< DofDistributedPrimaryField > field
std::unique_ptr< Element > CreateBoundaryElement(Element_Geometry_Type egt, int elemNum, Domain *domain, IntArray &bentityNodes) const
void updateYourself(TimeStep *tStep) override
bool preprocessFEM2DG
flag indicating whether the FEM input should be preprocessed to DG problem input (boundary entity gen...
int targetAllNodeSet
int target sets for all nodes and all elements
IntArray sets2preprocess
array of sets to process to generate boundary node sets
std ::vector< std::unique_ptr< DGBoundaryEntity > > boundaryEntities
NumericalMethod * giveNumericalMethod(MetaStep *mStep) override
Returns reference to receiver's numerical method.
Function * giveDtFunction()
double deltaT
Length of time step.
void restoreContext(DataStream &stream, ContextMode mode) override
Variable::VariableQuantity unknownQuantity
void printOutputAt(FILE *file, TimeStep *tStep) override
std ::unique_ptr< SparseMtrx > lhsMatrix
int forceEquationNumbering() override
void updateSolution(FloatArray &solutionVector, TimeStep *tStep, Domain *d) override
double giveDiscreteTime(int iStep)
void constructBoundaryEntities()
IntArray targetBoundaryNodeSets
array of target sets (same size as sets2preprocess) to store the generated boundary node sets
void saveContext(DataStream &stream, ContextMode mode) override
const char * giveClassName() const override
Returns class name of the receiver.
bool requiresEquationRenumbering(TimeStep *tStep) override
void updateMatrix(SparseMtrx &mat, TimeStep *tStep, Domain *d) override
std::string problemType
identifies what problem to solve (UP, UPV, etc)
void updateComponent(TimeStep *tStep, NumericalCmpn cmpn, Domain *d) override
void postInitialize() override
std ::unique_ptr< SparseMtrx > rhsMatrix
void initializeFrom(InputRecord &ir) override
bool newDofHandling() override
void assembleDirichletBcRhsVector(FloatArray &answer, TimeStep *tStep, ValueModeType mode, const UnknownNumberingScheme &ns, Domain *d) const
DofManager(int n, Domain *aDomain)
double giveDeltaT()
Returns time step size from the time step controlelr.
EngngModel(int i, EngngModel *_master=NULL)
int numberOfSteps
Total number of time steps.
void matrixFromElement(FloatMatrix &mat, Element &element, TimeStep *tStep) const override
Variable::VariableQuantity q
ScalarAdvectionLhsAssembler(double alpha, double deltaT, Variable::VariableQuantity q)
Variable::VariableQuantity q
void vectorFromElement(FloatArray &mat, Element &element, TimeStep *tStep, ValueModeType mode) const override
ScalarAdvectionRhsAssembler(double alpha, double deltaT, Variable::VariableQuantity q)
oofem::VariableQuantity VariableQuantity
#define _IFT_DGProblem_Name
FieldType
Physical type of field.
dofType
Dof Type, determines the type of DOF created.
@ SMT_Skyline
Symmetric skyline.
std::shared_ptr< Field > FieldPtr