svMultiPhysics
Loading...
Searching...
No Matches
uris.h
1// SPDX-FileCopyrightText: Copyright (c) Stanford University, The Regents of the University of California, and others.
2// SPDX-License-Identifier: BSD-3-Clause
3
4#ifndef URIS_H
5#define URIS_H
6
7#include "ComMod.h"
8#include "SolutionStates.h"
9#include "Simulation.h"
10
11namespace uris {
12
13void uris_meanp(ComMod& com_mod, CmMod& cm_mod, const int iUris, const SolutionStates& solutions);
14
15void uris_meanv(ComMod& com_mod, CmMod& cm_mod, const int iUris, const SolutionStates& solutions);
16
17void uris_update_disp(ComMod& com_mod, CmMod& cm_mod, const SolutionStates& solutions);
18
19void uris_find_tetra(ComMod& com_mod, CmMod& cm_mod, const int iUris);
20
21bool inside_tet(ComMod& com_mod, int& eNoN, Vector<double>& xp, Array<double>& xl, bool include_bdry);
22
23void uris_read_msh(Simulation* simulation);
24
25void uris_write_vtus(ComMod& com_mod);
26
27void uris_calc_sdf(ComMod& com_mod);
28
29void uris_read_sv(Simulation* simulation, mshType& mesh, const URISFaceParameters* mesh_param);
30
31bool in_poly(const Vector<double>& P, const Array<double>& P1, bool include_bdry);
32
33bool same_side(const Vector<double>& v1, const Vector<double>& v2, const Vector<double>& v3,
34 const Vector<double>& v4, const Vector<double>& p, bool include_bdry);
35
36void surface_element_barycenter(const urisType& uris_obj, int jM, int Ec, Vector<double>& xb);
37
38void uris_find_closest_face_centroid(const urisType& uris_obj, const Vector<double>& xp,
39 const int nsd, double& minS, int& Ec, int& jM, Vector<double>& xb);
40
41void uris_face_unit_normal(const urisType& uris_obj, const int nsd, const int jM, const int Ec,
42 Vector<double>& unitNormal);
43
44double uris_compute_sdf_sign(const urisType& uris_obj, const Vector<double>& xp,
45 const Vector<double>& xb, const double dotP);
46
47void uris_build_fluid_node_mask(ComMod& com_mod);
48
49void uris_interp_valve_velocity(const urisType& uris_obj, const Vector<double>& xp, const int nsd,
50 const int jM, const int Ec, const double dotP,
51 const Vector<double>& unitNormal, Vector<double>& interp_valve_vel);
52
53void eval_uris_ris_factors_quadrature(const ComMod& com_mod, const mshType& lM, const fsType& fs, const int e,
54 Vector<double>& uris_factor_total_el, Array<double>& uris_valve_vel_term_total_el);
55
56}
57
58#endif
59
The CmMod class duplicates the data structures in the Fortran CMMOD module defined in COMU....
Definition CmMod.h:35
The ComMod class duplicates the data structures in the Fortran COMMOD module defined in MOD....
Definition ComMod.h:1563
Definition Simulation.h:19
The URISFaceParameters class is used to store parameters for the 'Add_URIS_face' XML element.
Definition Parameters.h:1731
The Vector template class is used for storing int and double data.
Definition Vector.h:24
Function spaces (basis) type.
Definition ComMod.h:239
This is the container for a mesh or NURBS patch, those specific to NURBS are noted.
Definition ComMod.h:877
Unfitted Resistive Immersed surface data type.
Definition ComMod.h:1454
Holds solution state at old, current, and intermediate time levels.
Definition SolutionStates.h:39