|
PolyFEM
|
#include <ThermoElasticVarForm.hpp>
Public Member Functions | |
| std::string | name () const override |
| Get the name of the variational formulation. | |
| void | init (const std::string &formulation, const Units &units, const json &args, const std::string &out_path) override |
| Initialize the variational formulation with the given parameters. | |
| io::OutStatsData | compute_errors (const Eigen::MatrixXd &solution) override |
| Get the error statistics of the variational formulation, for output purposes. | |
| std::vector< io::OutputField > | output_fields (const io::OutputSample &sample, const Eigen::MatrixXd &solution, const io::OutputFieldOptions &options) const override |
| Get the output fields of the variational formulation, for output purposes. | |
Public Member Functions inherited from polyfem::varform::NonlinearElasticVarForm | |
| bool | is_contact_enabled () const override |
| Check if contact is enabled for the variational formulation, for output purposes. | |
| io::OutputSpace | output_space () const override |
| Get the output space of the variational formulation, for output purposes. | |
Public Member Functions inherited from polyfem::varform::ElasticVarForm | |
| void | save_json (const Eigen::MatrixXd &solution, std::ostream &out) const override |
| Save the solution to a JSON file, for output purposes. | |
| void | export_data (const Eigen::MatrixXd &solution) const override |
Public Member Functions inherited from polyfem::varform::VarForm | |
| virtual | ~VarForm ()=default |
| void | set_args (const json &args) |
| Reset the internal state of the variational formulation, e.g. | |
| void | set_mesh (std::unique_ptr< mesh::Mesh > mesh, const double loading_mesh_time=0) |
| Set the mesh for the variational formulation. | |
| void | solve (Eigen::MatrixXd &sol) |
| Solve the variational formulation and store the solution in the given matrix. | |
| void | set_time_callback (const std::function< void(int, int, double, double)> &callback) |
| int | problem_dimension () const |
| Get the problem dimension of the variational formulation, for output purposes. | |
| const io::OutRuntimeData & | output_timings () const |
| Get the runtime timings of the variational formulation, for output purposes. | |
| void | save_json (const Eigen::MatrixXd &solution) const |
| Save the solution to a JSON file, for output purposes. | |
Private Member Functions | |
| void | reset () override |
| void | load_mesh (const mesh::Mesh &mesh, const json &args) override |
| void | build_basis (mesh::Mesh &mesh, const bool iso_parametric, const json &args) override |
| void | assemble_rhs (const mesh::Mesh &mesh) override |
| void | assemble_mass_mat (const mesh::Mesh &mesh, const json &args) override |
| void | solve_problem (Eigen::MatrixXd &sol) override |
| void | build_rhs_assembler () override |
| void | read_material_space_ids (const json &args) |
| json | elastic_material_args () const |
| json | time_integrator_args (const int fe_space_id) const |
| void | build_displacement_boundary (mesh::Mesh &mesh) |
| void | build_temperature_basis (mesh::Mesh &mesh, const bool iso_parametric, const json &args) |
| void | build_temperature_boundary (mesh::Mesh &mesh) |
| void | build_forms (Eigen::MatrixXd &solution, const double t) |
| void | update_transient_form_weights () |
| void | solve_nonlinear_step (const int step, Eigen::MatrixXd &solution) |
| void | initial_temperature_solution (Eigen::MatrixXd &solution) const |
| void | split_solution (const Eigen::MatrixXd &solution, Eigen::MatrixXd &displacement, Eigen::MatrixXd &temperature) const |
| Eigen::MatrixXd | stacked_solution (const Eigen::MatrixXd &displacement, const Eigen::MatrixXd &temperature) const |
| int | displacement_ndof () const |
| int | temperature_ndof () const |
| int | total_ndof () const |
Additional Inherited Members | |
Protected Member Functions inherited from polyfem::varform::NonlinearElasticVarForm | |
| void | init_solve (Eigen::MatrixXd &sol, const double t) |
| void | init_forms (const json &args, const int dim, Eigen::MatrixXd &sol, const double t) |
| void | solve_tensor_nonlinear (int step, Eigen::MatrixXd &sol, const bool init_lagging=true) |
| std::shared_ptr< assembler::PressureAssembler > | build_pressure_assembler () const |
| void | build_collision_mesh (const mesh::Mesh &mesh, const json &args) |
| void | preprocess_contact_parameters () |
| void | build_collision_mesh (const mesh::Mesh &mesh, const int n_bases, const std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &geom_bases, const std::vector< mesh::LocalBoundary > &total_local_boundary, const mesh::Obstacle &obstacle, const json &args, const std::function< std::string(const std::string &)> &resolve_input_path, const Eigen::VectorXi &in_node_to_node, ipc::CollisionMesh &collision_mesh) |
| int | n_obstacle_vertices () const override |
Protected Member Functions inherited from polyfem::varform::ElasticVarForm | |
| void | build_elastic_basis (mesh::Mesh &mesh, const bool iso_parametric, const json &args, const int fe_space_id) |
| void | initial_velocity (Eigen::MatrixXd &velocity) const |
| void | initial_acceleration (Eigen::MatrixXd &acceleration) const |
| void | initial_elastic_solution (Eigen::MatrixXd &solution) const |
| QuadratureOrders | elastic_boundary_samples () const |
| std::vector< int > | elastic_primitive_to_node () const |
| std::vector< int > | elastic_node_to_primitive () const |
| void | build_mesh_matrices (Eigen::MatrixXd &V, Eigen::MatrixXi &F) const |
| void | save_elastic_step_state (const double t0, const double dt, const int t, const time_integrator::ImplicitTimeIntegrator *time_integrator) const |
| std::vector< io::OutputField > | elastic_output_fields (const io::OutputSample &sample, const Eigen::MatrixXd &solution, const io::OutputFieldOptions &options, const mesh::Obstacle *obstacle, const time_integrator::ImplicitTimeIntegrator *time_integrator, const std::vector< std::pair< std::string, std::shared_ptr< solver::Form > > > &named_forms, const solver::Form *elastic_form, const solver::ContactForm *contact_form=nullptr) const |
| void | append_primary_output_fields (std::vector< io::OutputField > &fields, const io::OutputSample &sample, const Eigen::MatrixXd &solution, const io::OutputFieldOptions &options, const mesh::Obstacle *obstacle=nullptr) const |
| Eigen::MatrixXd | displaced_output_normals (const io::OutputSample &sample, const Eigen::MatrixXd &solution) const |
Protected Member Functions inherited from polyfem::varform::VarForm | |
| std::string | resolve_output_path (const std::string &path) const |
| std::string | resolve_input_path (const std::string &path, const bool only_if_exists=false) const |
| void | set_materials (assembler::Assembler &assembler, const int size) const |
| void | assign_discr_orders (const json &discr_order, const mesh::Mesh &mesh, Eigen::VectorXi &disc_orders) |
| void | assign_discr_orders (const json &discr_order, const int fe_space_id, const mesh::Mesh &mesh, Eigen::VectorXi &disc_orders) |
| void | prepare () |
| QuadratureOrders | n_boundary_samples (const int discr_order, const int gdiscr_order) const |
| void | build_fe_space (mesh::Mesh &mesh, const bool iso_parametric, const Eigen::VectorXi &disc_orders, const std::string &basis_type, const std::string &poly_basis_type, const assembler::Assembler &space_assembler, const int value_dim, const int quadrature_order, const int mass_quadrature_order, const bool use_corner_quadrature, const int n_harmonic_samples, const int integral_constraints, FESpace &space, VarFormBoundaryState &boundary, std::shared_ptr< GeometryMapping > geometry=nullptr) |
| void | save_step_state (const double t0, const double dt, const int t, const time_integrator::ImplicitTimeIntegrator *time_integrator, const bool rest_mesh_written=false) const |
| void | ensure_output_sampler () const |
| void | save_restart_json (const double t0, const double dt, const int t, const bool rest_mesh_written) const |
| void | save_timestep (const double time, const int t, const double t0, const double dt, const Eigen::MatrixXd &solution) const |
| void | save_subsolve (const int i, const int t, const Eigen::MatrixXd &solution) const |
| int | output_file_index (const int t) const |
| void | notify_time_step (const int t, const int time_steps, const double t0, const double dt) const |
| io::OutGeometryData::ExportOptions | export_options (const io::OutputSpace &space) const |
| io::OutputFieldFunction | output_field_function (const Eigen::MatrixXd &solution, const io::OutGeometryData::ExportOptions &opts) const |
Static Protected Member Functions inherited from polyfem::varform::VarForm | |
| static bool | read_initial_x_from_file (const std::string &state_path, const std::string &x_name, const bool reorder, const Eigen::VectorXi &in_node_to_node, const int dim, Eigen::MatrixXd &x) |
| static void | rebuild_node_positions (const std::vector< basis::ElementBases > &bases, const std::vector< int > &node_ids, std::vector< RowVectorNd > &positions) |
Protected Attributes inherited from polyfem::varform::NonlinearElasticVarForm | |
| ipc::CollisionMesh | collision_mesh |
| std::shared_ptr< assembler::PressureAssembler > | elasticity_pressure_assembler = nullptr |
| std::shared_ptr< assembler::ViscousDamping > | damping_assembler = nullptr |
| std::shared_ptr< assembler::ViscousDampingPrev > | damping_prev_assembler = nullptr |
| mesh::Obstacle | obstacle |
| solver::SolveData | solve_data |
| std::vector< std::shared_ptr< solver::Form > > | forms |
| bool | contact_dhat_was_explicit_ = false |
Protected Attributes inherited from polyfem::varform::ElasticVarForm | |
| FESpace | space_ |
| VarFormBoundaryState | boundary_ |
| assembler::AssemblyValsCache | ass_vals_cache_ |
| assembler::AssemblyValsCache | mass_ass_vals_cache_ |
| assembler::AssemblyValsCache | pure_mass_ass_vals_cache_ |
| std::shared_ptr< assembler::RhsAssembler > | rhs_assembler_ |
| StiffnessMatrix | mass_ |
| StiffnessMatrix | pure_mass_ |
| double | avg_mass_ = 0 |
| Eigen::MatrixXd | rhs_ |
| std::shared_ptr< assembler::Assembler > | primary_assembler_ = nullptr |
| std::shared_ptr< assembler::Mass > | mass_assembler_ = nullptr |
| std::shared_ptr< assembler::HRZMass > | pure_mass_assembler_ = nullptr |
| double | t0 = 0 |
| int | time_steps = 0 |
| double | dt = 0 |
Protected Attributes inherited from polyfem::varform::VarForm | |
| std::shared_ptr< assembler::Problem > | problem |
| current problem, it contains rhs and bc | |
| Units | units |
| json | args |
| io::OutStatsData | stats |
| io::OutRuntimeData | timings |
| runtime statistics | |
| std::string | root_path |
| std::string | output_path |
| std::unique_ptr< mesh::Mesh > | mesh_ |
| std::function< void(int, int, double, double)> | time_callback |
| io::OutGeometryData | output_geometry_ |
| bool | output_sampler_initialized_ = false |
| bool | prepared_ = false |
Definition at line 37 of file ThermoElasticVarForm.hpp.
|
overrideprivatevirtual |
Reimplemented from polyfem::varform::ElasticVarForm.
Definition at line 608 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::io::OutRuntimeData::assembling_mass_mat_time, polyfem::varform::ElasticVarForm::avg_mass_, polyfem::varform::FESpace::basis_list(), displacement_ndof(), polyfem::varform::FESpace::geometry_basis_list(), polyfem::mesh::Mesh::is_volume(), polyfem::logger(), polyfem::utils::lump_matrix(), polyfem::varform::ElasticVarForm::mass_, polyfem::varform::ElasticVarForm::mass_ass_vals_cache_, polyfem::varform::ElasticVarForm::mass_assembler_, polyfem::io::OutStatsData::mat_size, polyfem::varform::FESpace::n_bases, polyfem::io::OutStatsData::nn_zero, polyfem::io::OutStatsData::num_dofs, polyfem::varform::ElasticVarForm::pure_mass_, polyfem::varform::ElasticVarForm::pure_mass_ass_vals_cache_, polyfem::varform::ElasticVarForm::pure_mass_assembler_, polyfem::varform::ElasticVarForm::space_, stacked_lumped_mass_, polyfem::varform::VarForm::stats, temperature_mass_, temperature_mass_ass_vals_cache_, temperature_mass_assembler_, temperature_ndof(), temperature_pure_mass_, temperature_pure_mass_ass_vals_cache_, temperature_pure_mass_assembler_, temperature_space_, and polyfem::varform::VarForm::timings.
|
overrideprivatevirtual |
Reimplemented from polyfem::varform::ElasticVarForm.
Definition at line 571 of file ThermoElasticVarForm.cpp.
References polyfem::io::OutRuntimeData::assigning_rhs_time, polyfem::mesh::Mesh::bounding_box(), build_rhs_assembler(), polyfem::mesh::Mesh::is_volume(), polyfem::logger(), polyfem::varform::ElasticVarForm::mass_assembler_, polyfem::varform::ElasticVarForm::primary_assembler_, polyfem::varform::VarForm::problem, polyfem::varform::ElasticVarForm::rhs_, polyfem::varform::ElasticVarForm::rhs_assembler_, polyfem::varform::VarForm::root_path, temperature_problem_, temperature_rhs_, temperature_rhs_assembler_, temperature_rhs_density_, and polyfem::varform::VarForm::timings.
|
overrideprivatevirtual |
Reimplemented from polyfem::varform::NonlinearElasticVarForm.
Definition at line 324 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::varform::ElasticVarForm::ass_vals_cache_, polyfem::varform::VarForm::assign_discr_orders(), polyfem::varform::FESpace::basis_list(), polyfem::varform::ElasticVarForm::boundary_, polyfem::varform::VarFormBoundaryState::boundary_nodes, polyfem::varform::NonlinearElasticVarForm::build_collision_mesh(), build_displacement_boundary(), polyfem::varform::VarForm::build_fe_space(), build_temperature_basis(), build_temperature_boundary(), polyfem::io::OutStatsData::compute_mesh_size(), polyfem::io::OutStatsData::count_flipped_elements(), polyfem::mesh::Mesh::dimension(), displacement_space_id_, polyfem::varform::FESpace::geometry_basis_list(), polyfem::assembler::AssemblyValsCache::init(), polyfem::assembler::AssemblyValsCache::init_empty(), polyfem::mesh::Mesh::is_volume(), polyfem::logger(), polyfem::varform::ElasticVarForm::mass_ass_vals_cache_, polyfem::io::OutStatsData::mesh_size, polyfem::varform::FESpace::n_bases, polyfem::io::OutStatsData::n_flipped, polyfem::mesh::Obstacle::n_vertices(), polyfem::varform::VarFormBoundaryState::normalize_boundary_nodes(), polyfem::varform::NonlinearElasticVarForm::obstacle, polyfem::refinement::APriori::p_refine(), polyfem::varform::NonlinearElasticVarForm::preprocess_contact_parameters(), polyfem::varform::ElasticVarForm::primary_assembler_, polyfem::varform::VarForm::problem, polyfem::varform::ElasticVarForm::pure_mass_ass_vals_cache_, polyfem::varform::ElasticVarForm::space_, polyfem::varform::FESpace::space_in_node_to_node, polyfem::varform::VarForm::stats, temperature_ass_vals_cache_, temperature_assembler_, temperature_mass_ass_vals_cache_, temperature_problem_, temperature_pure_mass_ass_vals_cache_, temperature_space_, and polyfem::mesh::Mesh::update_nodes().
|
private |
Definition at line 419 of file ThermoElasticVarForm.cpp.
References polyfem::varform::FESpace::basis_list(), polyfem::varform::ElasticVarForm::boundary_, polyfem::varform::VarFormBoundaryState::boundary_nodes, polyfem::varform::VarFormBoundaryState::clear_boundary_conditions(), polyfem::mesh::Mesh::dimension(), polyfem::assembler::Dirichlet, polyfem::varform::VarFormBoundaryState::dirichlet_nodes, polyfem::varform::VarFormBoundaryState::dirichlet_nodes_position, displacement_space_id_, polyfem::mesh::Mesh::get_node_id(), polyfem::varform::VarFormBoundaryState::local_boundary, polyfem::varform::VarFormBoundaryState::local_neumann_boundary, polyfem::varform::FESpace::n_bases, polyfem::assembler::Neumann, polyfem::varform::VarFormBoundaryState::neumann_nodes, polyfem::varform::VarFormBoundaryState::neumann_nodes_position, polyfem::varform::VarFormBoundaryState::normalize_boundary_nodes(), polyfem::varform::VarForm::problem, polyfem::varform::VarForm::rebuild_node_positions(), polyfem::varform::ElasticVarForm::space_, and polyfem::varform::VarFormBoundaryState::total_local_boundary.
Referenced by build_basis().
|
private |
Definition at line 688 of file ThermoElasticVarForm.cpp.
References polyfem::solver::SolveData::al_form, polyfem::varform::VarForm::args, polyfem::varform::ElasticVarForm::ass_vals_cache_, polyfem::varform::FESpace::bases, polyfem::varform::FESpace::basis_list(), polyfem::varform::ElasticVarForm::boundary_, polyfem::varform::VarFormBoundaryState::boundary_nodes, polyfem::time_integrator::ImplicitTimeIntegrator::construct_time_integrator(), polyfem::varform::FESpace::disc_orders, polyfem::solver::Discrete, displacement_ndof(), displacement_space_id_, polyfem::varform::ElasticVarForm::dt, polyfem::varform::ElasticVarForm::elastic_boundary_samples(), polyfem::time_integrator::ImplicitTimeIntegrator::First, polyfem::varform::NonlinearElasticVarForm::forms, polyfem::varform::FESpace::geometry_basis_list(), polyfem::varform::NonlinearElasticVarForm::init_forms(), polyfem::varform::ElasticVarForm::initial_acceleration(), polyfem::varform::ElasticVarForm::initial_elastic_solution(), initial_temperature_solution(), polyfem::varform::ElasticVarForm::initial_velocity(), polyfem::varform::VarFormBoundaryState::local_boundary, polyfem::varform::VarFormBoundaryState::local_neumann_boundary, polyfem::varform::ElasticVarForm::mass_, polyfem::varform::VarForm::mesh_, polyfem::varform::FESpace::n_bases, polyfem::varform::VarForm::n_boundary_samples(), polyfem::mesh::Obstacle::n_vertices(), polyfem::varform::NonlinearElasticVarForm::obstacle, polyfem::varform::VarForm::output_path, polyfem::varform::VarForm::problem, polyfem::varform::ElasticVarForm::rhs_assembler_, polyfem::time_integrator::ImplicitTimeIntegrator::Second, polyfem::varform::NonlinearElasticVarForm::solve_data, polyfem::varform::ElasticVarForm::space_, split_solution(), stacked_form_, temperature_ass_vals_cache_, temperature_assembler_, temperature_body_form_, temperature_boundary_, temperature_form_, temperature_inertia_form_, temperature_mass_, temperature_ndof(), temperature_rhs_, temperature_rhs_assembler_, temperature_rhs_density_, temperature_space_, temperature_space_id_, temperature_time_integrator_, thermoelastic_assembler_, thermoelastic_form_, polyfem::solver::SolveData::time_integrator, time_integrator_args(), total_ndof(), and update_transient_form_weights().
Referenced by solve_problem().
|
overrideprivatevirtual |
Reimplemented from polyfem::varform::NonlinearElasticVarForm.
Definition at line 541 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::varform::FESpace::basis_list(), polyfem::varform::ElasticVarForm::boundary_, polyfem::varform::VarFormBoundaryState::dirichlet_nodes, polyfem::varform::VarFormBoundaryState::dirichlet_nodes_position, displacement_space_id_, polyfem::varform::FESpace::geometry_basis_list(), polyfem::varform::ElasticVarForm::mass_ass_vals_cache_, polyfem::varform::VarForm::mesh_, polyfem::varform::FESpace::n_bases, polyfem::varform::VarFormBoundaryState::neumann_nodes, polyfem::varform::VarFormBoundaryState::neumann_nodes_position, polyfem::varform::NonlinearElasticVarForm::obstacle, polyfem::varform::ElasticVarForm::primary_assembler_, polyfem::varform::VarForm::problem, polyfem::solver::SolveData::rhs_assembler, polyfem::varform::ElasticVarForm::rhs_assembler_, polyfem::varform::NonlinearElasticVarForm::solve_data, polyfem::varform::ElasticVarForm::space_, temperature_assembler_, temperature_boundary_, temperature_mass_ass_vals_cache_, temperature_problem_, temperature_rhs_assembler_, temperature_space_, and temperature_space_id_.
Referenced by assemble_rhs().
|
private |
Definition at line 469 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::varform::VarForm::assign_discr_orders(), polyfem::varform::VarForm::build_fe_space(), polyfem::varform::FESpace::geometry, polyfem::logger(), polyfem::varform::FESpace::n_bases, polyfem::varform::ElasticVarForm::space_, temperature_assembler_, temperature_boundary_, temperature_space_, and temperature_space_id_.
Referenced by build_basis().
|
private |
Definition at line 494 of file ThermoElasticVarForm.cpp.
References polyfem::varform::FESpace::basis_list(), polyfem::varform::VarFormBoundaryState::boundary_nodes, polyfem::varform::VarFormBoundaryState::clear_boundary_conditions(), polyfem::assembler::Dirichlet, polyfem::varform::VarFormBoundaryState::dirichlet_nodes, polyfem::varform::VarFormBoundaryState::dirichlet_nodes_position, polyfem::varform::VarFormBoundaryState::local_boundary, polyfem::varform::VarFormBoundaryState::local_neumann_boundary, polyfem::varform::FESpace::n_bases, polyfem::assembler::Neumann, polyfem::varform::VarFormBoundaryState::neumann_nodes, polyfem::varform::VarFormBoundaryState::neumann_nodes_position, polyfem::varform::VarFormBoundaryState::normalize_boundary_nodes(), polyfem::varform::VarForm::rebuild_node_positions(), polyfem::varform::FESpace::space_in_node_to_node, temperature_boundary_, temperature_problem_, temperature_space_, temperature_space_id_, and polyfem::varform::VarFormBoundaryState::total_local_boundary.
Referenced by build_basis().
|
overridevirtual |
Get the error statistics of the variational formulation, for output purposes.
Reimplemented from polyfem::varform::ElasticVarForm.
Definition at line 1014 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::varform::FESpace::basis_list(), polyfem::io::OutStatsData::compute_errors(), polyfem::varform::FESpace::geometry_basis_list(), polyfem::varform::VarForm::mesh_, polyfem::varform::FESpace::n_bases, polyfem::varform::VarForm::problem, polyfem::varform::ElasticVarForm::space_, split_solution(), and polyfem::varform::VarForm::stats.
|
inlineprivate |
Definition at line 80 of file ThermoElasticVarForm.hpp.
References polyfem::varform::FESpace::ndof(), and polyfem::varform::ElasticVarForm::space_.
Referenced by assemble_mass_mat(), build_forms(), solve_nonlinear_step(), split_solution(), stacked_solution(), and total_ndof().
|
private |
Definition at line 257 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args.
Referenced by load_mesh().
|
overridevirtual |
Initialize the variational formulation with the given parameters.
| formulation | name of the variational formulation |
| units | unit system to use for the formulation |
| args | json input arguments, used to initialize the formulation |
| out_path | output path for the formulation, used to save intermediate data |
Reimplemented from polyfem::varform::NonlinearElasticVarForm.
Definition at line 191 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::varform::NonlinearElasticVarForm::contact_dhat_was_explicit_, polyfem::varform::ElasticVarForm::dt, elastic_formulation_, polyfem::varform::VarForm::init(), polyfem::assembler::AssemblerUtils::make_assembler(), polyfem::assembler::AssemblerUtils::make_mixed_nl_assembler(), polyfem::varform::ElasticVarForm::mass_assembler_, polyfem::varform::ElasticVarForm::primary_assembler_, polyfem::varform::VarForm::problem, polyfem::varform::ElasticVarForm::pure_mass_assembler_, read_material_space_ids(), polyfem::varform::VarForm::root_path, polyfem::varform::ElasticVarForm::t0, temperature_assembler_, temperature_mass_assembler_, temperature_problem_, temperature_pure_mass_assembler_, thermoelastic_assembler_, polyfem::varform::ElasticVarForm::time_steps, and polyfem::varform::VarForm::units.
|
private |
Definition at line 652 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::varform::VarForm::read_initial_x_from_file(), polyfem::varform::VarForm::resolve_input_path(), polyfem::varform::FESpace::space_in_node_to_node, temperature_rhs_assembler_, and temperature_space_.
Referenced by build_forms(), and solve_problem().
|
overrideprivatevirtual |
Reimplemented from polyfem::varform::NonlinearElasticVarForm.
Definition at line 289 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::mesh::Mesh::dimension(), elastic_material_args(), polyfem::mesh::Mesh::get_body_id(), polyfem::utils::json_as_array(), polyfem::logger(), polyfem::varform::ElasticVarForm::mass_assembler_, polyfem::varform::VarForm::mesh_, polyfem::mesh::Mesh::n_elements(), polyfem::varform::NonlinearElasticVarForm::obstacle, polyfem::varform::ElasticVarForm::primary_assembler_, polyfem::varform::VarForm::problem, polyfem::varform::ElasticVarForm::pure_mass_assembler_, polyfem::mesh::read_obstacle_geometry(), polyfem::varform::VarForm::root_path, temperature_assembler_, temperature_mass_assembler_, temperature_problem_, temperature_pure_mass_assembler_, thermoelastic_assembler_, and polyfem::varform::VarForm::units.
|
inlineoverridevirtual |
Get the name of the variational formulation.
Implements polyfem::varform::VarForm.
Definition at line 40 of file ThermoElasticVarForm.hpp.
Referenced by output_fields().
|
overridevirtual |
Get the output fields of the variational formulation, for output purposes.
| sample | Output sample |
| solution | Solution matrix |
| options | Output field options |
Reimplemented from polyfem::varform::NonlinearElasticVarForm.
Definition at line 1030 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, polyfem::io::OutputSample::Contact, polyfem::io::OutputSample::domain, polyfem::io::OutputSample::element_ids, polyfem::io::OutputFieldOptions::export_field(), polyfem::io::OutputSample::local_points, polyfem::varform::VarForm::mesh_, name(), polyfem::io::OutputSample::node_ids, polyfem::varform::NonlinearElasticVarForm::output_fields(), polyfem::io::OutputField::Point, polyfem::io::OutputSample::points, split_solution(), and polyfem::io::OutputSample::time.
|
private |
Definition at line 245 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, displacement_space_id_, elastic_formulation_, polyfem::log_and_throw_error(), and temperature_space_id_.
Referenced by init().
|
overrideprivatevirtual |
Reimplemented from polyfem::varform::NonlinearElasticVarForm.
Definition at line 161 of file ThermoElasticVarForm.cpp.
References displacement_space_id_, elastic_formulation_, polyfem::assembler::AssemblyValsCache::init_empty(), polyfem::varform::FESpace::reset(), polyfem::varform::VarFormBoundaryState::reset(), polyfem::varform::NonlinearElasticVarForm::reset(), stacked_form_, stacked_lumped_mass_, temperature_ass_vals_cache_, temperature_assembler_, temperature_body_form_, temperature_boundary_, temperature_form_, temperature_inertia_form_, temperature_mass_, temperature_mass_ass_vals_cache_, temperature_mass_assembler_, temperature_problem_, temperature_pure_mass_, temperature_pure_mass_ass_vals_cache_, temperature_pure_mass_assembler_, temperature_rhs_, temperature_rhs_assembler_, temperature_rhs_density_, temperature_space_, temperature_space_id_, temperature_time_integrator_, thermoelastic_assembler_, and thermoelastic_form_.
|
private |
Definition at line 859 of file ThermoElasticVarForm.cpp.
References polyfem::solver::SolveData::al_form, polyfem::varform::VarForm::args, polyfem::Units::characteristic_length(), displacement_ndof(), polyfem::solver::FullNLProblem::finish(), polyfem::solver::FullNLProblem::init(), polyfem::solver::NLProblem::init_lagging(), polyfem::solver::FullNLProblem::is_residual(), polyfem::logger(), polyfem::solver::SolveData::nl_problem, polyfem::solver::NLProblem::normalize_forms(), polyfem::solver::ALSolver::post_subsolve, polyfem::varform::VarForm::save_subsolve(), polyfem::solver::ALSolver::solve_al(), polyfem::varform::NonlinearElasticVarForm::solve_data, polyfem::solver::ALSolver::solve_reduced(), polyfem::io::OutStatsData::solver_info, polyfem::varform::VarForm::stats, polyfem::varform::VarForm::units, polyfem::solver::SolveData::update_barrier_stiffness(), polyfem::solver::FullNLProblem::uses_lagging(), and x.
Referenced by solve_problem().
|
overrideprivatevirtual |
Implements polyfem::varform::VarForm.
Definition at line 920 of file ThermoElasticVarForm.cpp.
References polyfem::solver::SolveData::al_form, polyfem::varform::VarForm::args, build_forms(), polyfem::varform::ElasticVarForm::dt, polyfem::varform::NonlinearElasticVarForm::forms, polyfem::varform::ElasticVarForm::initial_elastic_solution(), initial_temperature_solution(), polyfem::logger(), polyfem::varform::VarForm::mesh_, polyfem::solver::SolveData::nl_problem, polyfem::varform::VarForm::notify_time_step(), POLYFEM_SCOPED_TIMER, polyfem::varform::VarForm::problem, polyfem::varform::VarForm::save_step_state(), polyfem::varform::VarForm::save_timestep(), polyfem::varform::NonlinearElasticVarForm::solve_data, solve_nonlinear_step(), polyfem::io::OutStatsData::solver_info, polyfem::io::OutRuntimeData::solving_time, polyfem::io::OutStatsData::spectrum, split_solution(), stacked_lumped_mass_, stacked_solution(), polyfem::varform::VarForm::stats, polyfem::varform::ElasticVarForm::t0, temperature_time_integrator_, polyfem::solver::SolveData::time_integrator, polyfem::varform::ElasticVarForm::time_steps, polyfem::varform::VarForm::timings, total_ndof(), polyfem::solver::SolveData::update_barrier_stiffness(), and update_transient_form_weights().
|
private |
Definition at line 678 of file ThermoElasticVarForm.cpp.
References displacement_ndof(), temperature_ndof(), and total_ndof().
Referenced by build_forms(), compute_errors(), output_fields(), and solve_problem().
|
private |
Definition at line 665 of file ThermoElasticVarForm.cpp.
References displacement_ndof(), and temperature_ndof().
Referenced by solve_problem().
|
inlineprivate |
Definition at line 81 of file ThermoElasticVarForm.hpp.
References polyfem::varform::FESpace::ndof(), and temperature_space_.
Referenced by assemble_mass_mat(), build_forms(), split_solution(), stacked_solution(), and total_ndof().
|
private |
Definition at line 270 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::args, and polyfem::log_and_throw_error().
Referenced by build_forms().
|
inlineprivate |
Definition at line 82 of file ThermoElasticVarForm.hpp.
References displacement_ndof(), and temperature_ndof().
Referenced by build_forms(), solve_problem(), and split_solution().
|
private |
Definition at line 840 of file ThermoElasticVarForm.cpp.
References polyfem::varform::VarForm::problem, polyfem::varform::NonlinearElasticVarForm::solve_data, temperature_body_form_, temperature_form_, temperature_time_integrator_, thermoelastic_form_, polyfem::solver::SolveData::time_integrator, and polyfem::solver::SolveData::update_dt().
Referenced by build_forms(), and solve_problem().
|
private |
Definition at line 112 of file ThermoElasticVarForm.hpp.
Referenced by build_basis(), build_displacement_boundary(), build_forms(), build_rhs_assembler(), read_material_space_ids(), and reset().
|
private |
Definition at line 114 of file ThermoElasticVarForm.hpp.
Referenced by init(), read_material_space_ids(), and reset().
|
private |
Definition at line 110 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), and reset().
|
private |
Definition at line 101 of file ThermoElasticVarForm.hpp.
Referenced by assemble_mass_mat(), reset(), and solve_problem().
|
private |
Definition at line 88 of file ThermoElasticVarForm.hpp.
Referenced by build_basis(), build_forms(), and reset().
|
private |
Definition at line 92 of file ThermoElasticVarForm.hpp.
Referenced by build_basis(), build_forms(), build_rhs_assembler(), build_temperature_basis(), init(), load_mesh(), and reset().
|
private |
Definition at line 108 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), reset(), and update_transient_form_weights().
|
private |
Definition at line 85 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), build_rhs_assembler(), build_temperature_basis(), build_temperature_boundary(), and reset().
|
private |
Definition at line 106 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), reset(), and update_transient_form_weights().
|
private |
Definition at line 109 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), and reset().
|
private |
Definition at line 99 of file ThermoElasticVarForm.hpp.
Referenced by assemble_mass_mat(), build_forms(), and reset().
|
private |
Definition at line 89 of file ThermoElasticVarForm.hpp.
Referenced by assemble_mass_mat(), build_basis(), build_rhs_assembler(), and reset().
|
private |
Definition at line 94 of file ThermoElasticVarForm.hpp.
Referenced by assemble_mass_mat(), init(), load_mesh(), and reset().
|
private |
Definition at line 86 of file ThermoElasticVarForm.hpp.
Referenced by assemble_rhs(), build_basis(), build_rhs_assembler(), build_temperature_boundary(), init(), load_mesh(), and reset().
|
private |
Definition at line 100 of file ThermoElasticVarForm.hpp.
Referenced by assemble_mass_mat(), and reset().
|
private |
Definition at line 90 of file ThermoElasticVarForm.hpp.
Referenced by assemble_mass_mat(), build_basis(), and reset().
|
private |
Definition at line 95 of file ThermoElasticVarForm.hpp.
Referenced by assemble_mass_mat(), init(), load_mesh(), and reset().
|
private |
Definition at line 102 of file ThermoElasticVarForm.hpp.
Referenced by assemble_rhs(), build_forms(), and reset().
|
private |
Definition at line 96 of file ThermoElasticVarForm.hpp.
Referenced by assemble_rhs(), build_forms(), build_rhs_assembler(), initial_temperature_solution(), and reset().
|
private |
Definition at line 97 of file ThermoElasticVarForm.hpp.
Referenced by assemble_rhs(), build_forms(), and reset().
|
private |
Definition at line 84 of file ThermoElasticVarForm.hpp.
Referenced by assemble_mass_mat(), build_basis(), build_forms(), build_rhs_assembler(), build_temperature_basis(), build_temperature_boundary(), initial_temperature_solution(), reset(), and temperature_ndof().
|
private |
Definition at line 113 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), build_rhs_assembler(), build_temperature_basis(), build_temperature_boundary(), read_material_space_ids(), and reset().
|
private |
Definition at line 104 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), reset(), solve_problem(), and update_transient_form_weights().
|
private |
Definition at line 93 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), init(), load_mesh(), and reset().
|
private |
Definition at line 107 of file ThermoElasticVarForm.hpp.
Referenced by build_forms(), reset(), and update_transient_form_weights().