35#ifndef qclinearstatic_h
36#define qclinearstatic_h
46#define _IFT_QClinearStatic_Name "qclinearstatic"
47#define _IFT_QuasiContinuum_approach "qcapproach"
48#define _IFT_QuasiContinuum_mtrx_type "mtrxt"
50#define _IFT_QuasiContinuum_generate_Particles "genparticles"
51#define _IFT_QuasiContinuum_generate_Links "genlinks"
52#define _IFT_QuasiContinuum_generate_Interpolation_Elements "geninterpelem"
54#define _IFT_QuasiContinuum_t3d_File_Name "t3dfile"
55#define _IFT_QuasiContinuum_interp_Mat_Number "intmatnum"
57#define _IFT_QuasiContinuum_T3D_Interpolation_Mesh_size "imsize"
59#define _IFT_FullSolvedDomain_nodes "fsd_n"
60#define _IFT_FullSolvedDomain_elements "fsd_e"
61#define _IFT_FullSolvedDomain_radius "fsd_r"
62#define _IFT_FullSolvedDomain_box "fsd_b"
66class QCFullsolveddomain;
EngngModel * master
Master e-model; if defined receiver is in maintained (slave) mode.
LinearStatic(int i, EngngModel *master=nullptr)
virtual QCFullsolveddomain * giveFullSolvedDomain()
FloatArray FullSolvedDomainNodes
virtual double computeTotalVolumeOfInterpolationMesh(Domain *d)
QClinearStatic(int i, EngngModel *master=nullptr)
virtual void updateNodeTypes(Domain *d)
void solveYourselfAt(TimeStep *tStep) override
std::vector< bool > activatedElementList
void initializeFrom(InputRecord &ir) override
UnknownNumberingScheme & giveEquationNumbering() override
int generateInterpolationElements
virtual ~QClinearStatic()
SparseLinearSystemNM * nMethod
Numerical method used to solve the problem.
virtual std::vector< IntArray > transformMeshToParticles(Domain *d, std::vector< FloatArray > &nodeCoords, std::vector< IntArray > &meshNodes)
const char * giveClassName() const override
Returns class name of the receiver.
virtual std::vector< IntArray > loadInterpolationMesh(Domain *d)
int interpolationElementsMaterialNumber
QuasicontinuumNumberingscheme qcEquationNumbering
fMode giveFormulation() override
virtual bool nodeInFullSolvedDomainTest(Node *n)
void solveYourself() override
LinSystSolverType solverType
FloatArray FullSolvedDomainRadius
SparseMtrxType sparseMtrxType
bool isElementActivated(Element *e) override
virtual int giveQcApproachNumber()
virtual void setQCNodeType(Domain *d)
std::vector< bool > activatedNodeList
void setActivatedElementList(IntArray elemList)
FloatArray FullSolvedDomainElements
QCFullsolveddomain Fullsolveddomain
double defaultT3DMeshSize
int numberOfIntepolationElements
void setActivatedNodeList(IntArray nodeList, Domain *d)
void postInitialize() override
virtual void initializeFullSolvedDomain(InputRecord &ir)
virtual void setRepNodesInVerticesOfInterpolationMesh(Domain *d)
virtual std::vector< IntArray > generateInterpolationMesh(Domain *d)
virtual DofManager * findNearestParticle(Domain *d, FloatArray coords)
FloatArray FullSolvedDomainBox
std::vector< IntArray > interpolationMeshNodes
virtual void createInterpolationMeshNodes(Domain *d)
bool isElementActivated(int elemNum) override
int homogenizationMtrxType
SparseMtrx * stiffnessMatrix
FloatArray displacementVector
const char * giveInputRecordName() const override
#define _IFT_QClinearStatic_Name