66 const Eigen::VectorXi &in_node_to_node,
70 std::vector<basis::ElementBases> &bases,
71 const std::vector<basis::ElementBases> &geom_bases,
75 const double jacobian_threshold,
77 const unsigned conservative_max_iter,
80 const int n_pressure_bases,
81 const std::vector<int> &boundary_nodes,
82 const std::vector<mesh::LocalBoundary> &local_boundary,
83 const std::vector<mesh::LocalBoundary> &local_neumann_boundary,
85 const Eigen::MatrixXd &rhs,
86 const Eigen::MatrixXd &sol,
90 const std::vector<mesh::LocalBoundary> &local_pressure_boundary,
91 const std::unordered_map<
int, std::vector<mesh::LocalBoundary>> &local_pressure_cavity,
95 const bool ignore_inertia,
97 const std::shared_ptr<assembler::ViscousDamping> damping_assembler,
100 const double lagged_regularization_weight,
101 const int lagged_regularization_iterations,
104 const size_t obstacle_ndof,
105 const std::vector<std::string> &hard_constraint_files,
106 const std::vector<json> &soft_constraint_files,
107 const json &zero_mean,
110 const bool contact_enabled,
111 const ipc::CollisionMesh &collision_mesh,
113 const double avg_mass,
114 const bool use_area_weighting,
115 const bool use_improved_max_operator,
116 const bool use_physical_barrier,
117 const json &barrier_stiffness,
118 const double initial_barrier_stiffness,
119 const ipc::BroadPhaseMethod broad_phase,
120 const double ccd_tolerance,
121 const long ccd_max_iterations,
122 const bool enable_shape_derivatives,
125 const bool use_gcp_formulation,
126 const double alpha_t,
127 const double alpha_n,
128 const bool use_adaptive_dhat,
129 const double min_distance_ratio,
132 const bool adhesion_enabled,
138 const double tangential_adhesion_coefficient,
140 const int tangential_adhesion_iterations,
146 const bool periodic_contact,
147 const Eigen::VectorXi &tiled_to_single,
150 const double friction_coefficient,
152 const int friction_iterations,
155 const json &rayleigh_damping,
162 const std::vector<mesh::LocalBoundary> *periodic_local_boundary =
nullptr,
163 const json &periodic_conditions = json::array(),
164 const int fe_space_id = -1);
173 std::vector<std::pair<std::string, std::shared_ptr<solver::Form>>>
named_forms()
const;
180 std::vector<std::shared_ptr<solver::AugmentedLagrangianForm>>
al_form;
std::vector< std::shared_ptr< Form > > init_forms(const Units &units, const io::ResourceIO &resources, const int dim, const double t, const Eigen::VectorXi &in_node_to_node, const int n_bases, std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &geom_bases, const assembler::Assembler &assembler, assembler::AssemblyValsCache &ass_vals_cache, const assembler::AssemblyValsCache &mass_ass_vals_cache, const double jacobian_threshold, const solver::ElementInversionCheck check_inversion, const unsigned conservative_max_iter, const int n_pressure_bases, const std::vector< int > &boundary_nodes, const std::vector< mesh::LocalBoundary > &local_boundary, const std::vector< mesh::LocalBoundary > &local_neumann_boundary, const QuadratureOrders &n_boundary_samples, const Eigen::MatrixXd &rhs, const Eigen::MatrixXd &sol, const assembler::Density &density, const std::vector< mesh::LocalBoundary > &local_pressure_boundary, const std::unordered_map< int, std::vector< mesh::LocalBoundary > > &local_pressure_cavity, const std::shared_ptr< assembler::PressureAssembler > pressure_assembler, const bool ignore_inertia, const StiffnessMatrix &mass, const std::shared_ptr< assembler::ViscousDamping > damping_assembler, const double lagged_regularization_weight, const int lagged_regularization_iterations, const size_t obstacle_ndof, const std::vector< std::string > &hard_constraint_files, const std::vector< json > &soft_constraint_files, const json &zero_mean, const bool contact_enabled, const ipc::CollisionMesh &collision_mesh, const double dhat, const double avg_mass, const bool use_area_weighting, const bool use_improved_max_operator, const bool use_physical_barrier, const json &barrier_stiffness, const double initial_barrier_stiffness, const ipc::BroadPhaseMethod broad_phase, const double ccd_tolerance, const long ccd_max_iterations, const bool enable_shape_derivatives, const bool use_gcp_formulation, const double alpha_t, const double alpha_n, const bool use_adaptive_dhat, const double min_distance_ratio, const bool adhesion_enabled, const double dhat_p, const double dhat_a, const double Y, const double tangential_adhesion_coefficient, const double epsa, const int tangential_adhesion_iterations, const assembler::MacroStrainValue ¯o_strain_constraint, const bool periodic_contact, const Eigen::VectorXi &tiled_to_single, const double friction_coefficient, const double epsv, const int friction_iterations, const json &rayleigh_damping, const BCLumpingMode al_lumping=BCLumpingMode::ROW_SUM, const mesh::Mesh *periodic_mesh=nullptr, const std::vector< mesh::LocalBoundary > *periodic_local_boundary=nullptr, const json &periodic_conditions=json::array(), const int fe_space_id=-1)
Initialize the forms and return a vector of pointers to them.