44#ifndef NIMBLE_MODEL_DATA_BASE_H
45#define NIMBLE_MODEL_DATA_BASE_H
112 std::ostringstream errc;
113 errc <<
"Field \"" << field_label <<
"\" not allocated";
133 const std::shared_ptr<nimble::MaterialFactoryBase>& material_factory_base) = 0;
208 double time_previous,
210 bool is_output_step){};
223 double time_previous,
302 const std::vector<std::string>&
308 const std::map<int, std::vector<std::string>>&
314 const std::map<int, std::vector<std::string>>&
320 const std::map<int, std::vector<std::string>>&
Definition nimble_data_manager.h:70
Definition nimble_genesis_mesh.h:59
Definition nimble_material_factory_base.h:61
int dim_
Problem dimension, either 2 or 3.
Definition nimble_model_data_base.h:328
virtual void ComputeLumpedMass(nimble::DataManager &data_manager)=0
Compute the lumped mass.
void SetReferenceCoordinates(const nimble::GenesisMesh &mesh)
Set reference coordinates.
Definition nimble_model_data_base.cc:59
virtual ~ModelDataBase()=default
Destructor.
void SetCriticalTimeStep(double time_step)
Set the critical time step.
Definition nimble_model_data_base.h:276
virtual void InitializeExodusOutput(nimble::DataManager &data_manager)
Definition nimble_model_data_base.h:182
void SetDimension(int dim)
Set spatial dimension.
Definition nimble_model_data_base.cc:52
nimble::Viewify< 2 > GetVectorNodeData(const std::string &label)
Get view of vector quantity defined on nodes.
Definition nimble_model_data_base.h:163
virtual void ApplyKinematicConditions(nimble::DataManager &data_manager, double time_current, double time_previous)
Apply kinematic conditions.
Definition nimble_model_data_base.cc:93
const std::map< int, std::vector< std::string > > & GetElementDataLabelsForOutput() const
Definition nimble_model_data_base.h:315
virtual void ApplyInitialConditions(nimble::DataManager &data_manager)
Apply initial conditions.
Definition nimble_model_data_base.cc:84
virtual void InitializeBlocks(nimble::DataManager &data_manager, const std::shared_ptr< nimble::MaterialFactoryBase > &material_factory_base)=0
Initialize the different blocks in the mesh.
ModelDataBase()=default
Constructor.
nimble::Viewify< 1 > GetScalarNodeData(const std::string &label)
Get view of scalar quantity defined on nodes.
Definition nimble_model_data_base.h:146
std::map< int, std::vector< std::string > > output_element_component_labels_
Output labels for element data that will be written to disk.
Definition nimble_model_data_base.h:341
int GetDimension() const
Get the spatial dimension.
Definition nimble_model_data_base.h:267
virtual void UpdateWithNewVelocity(nimble::DataManager &data_manager, double dt)
Update model with new velocity.
Definition nimble_model_data_base.h:245
virtual void ComputeInternalForce(nimble::DataManager &data_manager, double time_previous, double time_current, bool is_output_step, const nimble::Viewify< 2 > &displacement, nimble::Viewify< 2 > &force)
Compute the internal force.
Definition nimble_model_data_base.h:221
virtual nimble::Viewify< 2 > GetVectorNodeData(int field_id)=0
Get view of scalar quantity defined on nodes.
std::vector< std::string > output_node_component_labels_
Output labels for node data that will be written to disk.
Definition nimble_model_data_base.h:334
virtual int GetFieldId(const std::string &field_label) const =0
Returns the field ID for a specific label.
virtual void WriteExodusOutput(nimble::DataManager &data_manager, double time_current)
Write output of simulation in Exodus format.
Definition nimble_model_data_base.h:192
std::map< int, std::vector< std::string > > derived_output_element_data_labels_
Output labels for derived element data that will be written to disk.
Definition nimble_model_data_base.h:344
virtual nimble::Viewify< 1 > GetScalarNodeData(int field_id)=0
Get view of scalar quantity defined on nodes.
double GetCriticalTimeStep() const
Get the critical time step.
Definition nimble_model_data_base.h:297
double critical_time_step_
Critical time step.
Definition nimble_model_data_base.h:331
virtual void UpdateWithNewDisplacement(nimble::DataManager &data_manager, double dt)
Update model with new displacement.
Definition nimble_model_data_base.h:257
const std::map< int, std::vector< std::string > > & GetElementDataLabels() const
Definition nimble_model_data_base.h:309
std::map< int, std::vector< std::string > > element_component_labels_
Definition nimble_model_data_base.h:338
virtual void UpdateStates(const nimble::DataManager &data_manager)=0
Copy time state (n+1) into time state (n)
const std::map< int, std::vector< std::string > > & GetDerivedElementDataLabelsForOutput() const
Definition nimble_model_data_base.h:321
virtual int AllocateNodeData(Length length, std::string label, int num_objects)=0
Allocate data storage for a node-based quantity.
int GetFieldIdChecked(const std::string &field_label) const
Definition nimble_model_data_base.h:108
virtual void ComputeExternalForce(nimble::DataManager &data_manager, double time_previous, double time_current, bool is_output_step)
Compute the external force.
Definition nimble_model_data_base.h:206
const std::vector< std::string > & GetNodeDataLabelsForOutput() const
Definition nimble_model_data_base.h:303
Definition nimble_view.h:72
Definition kokkos_contact_manager.h:49
Length
Definition nimble_data_utils.h:66
#define NIMBLE_ABORT(...)
Definition nimble_macros.h:87
Definition nimble_model_data_base.h:66
int velocity
Definition nimble_model_data_base.h:73
int acceleration
Definition nimble_model_data_base.h:74
int deformation_gradient
Definition nimble_model_data_base.h:67
int stress
Definition nimble_model_data_base.h:68
int lumped_mass
Definition nimble_model_data_base.h:76
int reference_coordinates
Definition nimble_model_data_base.h:71
int state_sym_tensor
Definition nimble_model_data_base.h:83
int contact_force
Definition nimble_model_data_base.h:78
int displacement
Definition nimble_model_data_base.h:72
int unrotated_stress
Definition nimble_model_data_base.h:69
int external_force
Definition nimble_model_data_base.h:79
int state_full_tensor
Definition nimble_model_data_base.h:84
int state_scalar
Definition nimble_model_data_base.h:81
int internal_force
Definition nimble_model_data_base.h:77
int state_vec3D
Definition nimble_model_data_base.h:82