Skip to content

Commit c024b0a

Browse files
authored
Merge pull request #3983 from lindsayad/hash-table-matrices
Allow creating matrices based on hash tables
2 parents 5a56603 + b964294 commit c024b0a

23 files changed

Lines changed: 2403 additions & 104 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,7 @@ installed
235235

236236
# Allow developers to use .clang-format without dirtying git
237237
.clang-format
238+
239+
# VSCode related things
240+
.cache
241+
.vscode

clang-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ AllowShortLoopsOnASingleLine: false
2424
SortIncludes: false
2525
IndentCaseLabels: true
2626
ConstructorInitializerIndentWidth: 2
27-
AlwaysBreakAfterDefinitionReturnType: TopLevel
27+
AlwaysBreakAfterDefinitionReturnType: false
2828
AlwaysBreakTemplateDeclarations: true
2929

3030
FixNamespaceComments: false

configure

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60177,7 +60177,7 @@ printf "%s\n" "#define BUILD_DATE __DATE__ \" \" __TIME__" >>confdefs.h
6017760177
if test "x$enableexamples" = "xyes"
6017860178
then :
6017960179

60180-
ac_config_files="$ac_config_files examples/introduction/introduction_ex1/Makefile examples/introduction/introduction_ex2/Makefile examples/introduction/introduction_ex3/Makefile examples/introduction/introduction_ex4/Makefile examples/introduction/introduction_ex5/Makefile examples/adaptivity/adaptivity_ex1/Makefile examples/adaptivity/adaptivity_ex2/Makefile examples/adaptivity/adaptivity_ex3/Makefile examples/adaptivity/adaptivity_ex4/Makefile examples/adaptivity/adaptivity_ex5/Makefile examples/adjoints/adjoints_ex1/Makefile examples/adjoints/adjoints_ex2/Makefile examples/adjoints/adjoints_ex3/Makefile examples/adjoints/adjoints_ex4/Makefile examples/adjoints/adjoints_ex5/Makefile examples/adjoints/adjoints_ex6/Makefile examples/adjoints/adjoints_ex7/Makefile examples/eigenproblems/eigenproblems_ex1/Makefile examples/eigenproblems/eigenproblems_ex2/Makefile examples/eigenproblems/eigenproblems_ex3/Makefile examples/eigenproblems/eigenproblems_ex4/Makefile examples/fem_system/fem_system_ex1/Makefile examples/fem_system/fem_system_ex2/Makefile examples/fem_system/fem_system_ex3/Makefile examples/fem_system/fem_system_ex4/Makefile examples/fem_system/fem_system_ex5/Makefile examples/solution_transfer/solution_transfer_ex1/Makefile examples/miscellaneous/miscellaneous_ex1/Makefile examples/miscellaneous/miscellaneous_ex2/Makefile examples/miscellaneous/miscellaneous_ex3/Makefile examples/miscellaneous/miscellaneous_ex4/Makefile examples/miscellaneous/miscellaneous_ex5/Makefile examples/miscellaneous/miscellaneous_ex6/Makefile examples/miscellaneous/miscellaneous_ex7/Makefile examples/miscellaneous/miscellaneous_ex8/Makefile examples/miscellaneous/miscellaneous_ex9/Makefile examples/miscellaneous/miscellaneous_ex10/Makefile examples/miscellaneous/miscellaneous_ex11/Makefile examples/miscellaneous/miscellaneous_ex12/Makefile examples/miscellaneous/miscellaneous_ex13/Makefile examples/miscellaneous/miscellaneous_ex14/Makefile examples/miscellaneous/miscellaneous_ex15/Makefile examples/miscellaneous/miscellaneous_ex16/Makefile examples/optimization/optimization_ex1/Makefile examples/optimization/optimization_ex2/Makefile examples/subdomains/subdomains_ex1/Makefile examples/subdomains/subdomains_ex2/Makefile examples/subdomains/subdomains_ex3/Makefile examples/systems_of_equations/systems_of_equations_ex1/Makefile examples/systems_of_equations/systems_of_equations_ex2/Makefile examples/systems_of_equations/systems_of_equations_ex3/Makefile examples/systems_of_equations/systems_of_equations_ex4/Makefile examples/systems_of_equations/systems_of_equations_ex5/Makefile examples/systems_of_equations/systems_of_equations_ex6/Makefile examples/systems_of_equations/systems_of_equations_ex7/Makefile examples/systems_of_equations/systems_of_equations_ex8/Makefile examples/systems_of_equations/systems_of_equations_ex9/Makefile examples/reduced_basis/reduced_basis_ex1/Makefile examples/reduced_basis/reduced_basis_ex2/Makefile examples/reduced_basis/reduced_basis_ex3/Makefile examples/reduced_basis/reduced_basis_ex4/Makefile examples/reduced_basis/reduced_basis_ex5/Makefile examples/reduced_basis/reduced_basis_ex6/Makefile examples/reduced_basis/reduced_basis_ex7/Makefile examples/transient/transient_ex1/Makefile examples/transient/transient_ex2/Makefile examples/vector_fe/vector_fe_ex1/Makefile examples/vector_fe/vector_fe_ex2/Makefile examples/vector_fe/vector_fe_ex3/Makefile examples/vector_fe/vector_fe_ex4/Makefile examples/vector_fe/vector_fe_ex5/Makefile examples/vector_fe/vector_fe_ex6/Makefile examples/vector_fe/vector_fe_ex7/Makefile examples/vector_fe/vector_fe_ex8/Makefile examples/vector_fe/vector_fe_ex9/Makefile examples/Makefile"
60180+
ac_config_files="$ac_config_files examples/introduction/introduction_ex1/Makefile examples/introduction/introduction_ex2/Makefile examples/introduction/introduction_ex3/Makefile examples/introduction/introduction_ex4/Makefile examples/introduction/introduction_ex5/Makefile examples/adaptivity/adaptivity_ex1/Makefile examples/adaptivity/adaptivity_ex2/Makefile examples/adaptivity/adaptivity_ex3/Makefile examples/adaptivity/adaptivity_ex4/Makefile examples/adaptivity/adaptivity_ex5/Makefile examples/adjoints/adjoints_ex1/Makefile examples/adjoints/adjoints_ex2/Makefile examples/adjoints/adjoints_ex3/Makefile examples/adjoints/adjoints_ex4/Makefile examples/adjoints/adjoints_ex5/Makefile examples/adjoints/adjoints_ex6/Makefile examples/adjoints/adjoints_ex7/Makefile examples/eigenproblems/eigenproblems_ex1/Makefile examples/eigenproblems/eigenproblems_ex2/Makefile examples/eigenproblems/eigenproblems_ex3/Makefile examples/eigenproblems/eigenproblems_ex4/Makefile examples/fem_system/fem_system_ex1/Makefile examples/fem_system/fem_system_ex2/Makefile examples/fem_system/fem_system_ex3/Makefile examples/fem_system/fem_system_ex4/Makefile examples/fem_system/fem_system_ex5/Makefile examples/solution_transfer/solution_transfer_ex1/Makefile examples/miscellaneous/miscellaneous_ex1/Makefile examples/miscellaneous/miscellaneous_ex2/Makefile examples/miscellaneous/miscellaneous_ex3/Makefile examples/miscellaneous/miscellaneous_ex4/Makefile examples/miscellaneous/miscellaneous_ex5/Makefile examples/miscellaneous/miscellaneous_ex6/Makefile examples/miscellaneous/miscellaneous_ex7/Makefile examples/miscellaneous/miscellaneous_ex8/Makefile examples/miscellaneous/miscellaneous_ex9/Makefile examples/miscellaneous/miscellaneous_ex10/Makefile examples/miscellaneous/miscellaneous_ex11/Makefile examples/miscellaneous/miscellaneous_ex12/Makefile examples/miscellaneous/miscellaneous_ex13/Makefile examples/miscellaneous/miscellaneous_ex14/Makefile examples/miscellaneous/miscellaneous_ex15/Makefile examples/miscellaneous/miscellaneous_ex16/Makefile examples/miscellaneous/miscellaneous_ex17/Makefile examples/optimization/optimization_ex1/Makefile examples/optimization/optimization_ex2/Makefile examples/subdomains/subdomains_ex1/Makefile examples/subdomains/subdomains_ex2/Makefile examples/subdomains/subdomains_ex3/Makefile examples/systems_of_equations/systems_of_equations_ex1/Makefile examples/systems_of_equations/systems_of_equations_ex2/Makefile examples/systems_of_equations/systems_of_equations_ex3/Makefile examples/systems_of_equations/systems_of_equations_ex4/Makefile examples/systems_of_equations/systems_of_equations_ex5/Makefile examples/systems_of_equations/systems_of_equations_ex6/Makefile examples/systems_of_equations/systems_of_equations_ex7/Makefile examples/systems_of_equations/systems_of_equations_ex8/Makefile examples/systems_of_equations/systems_of_equations_ex9/Makefile examples/reduced_basis/reduced_basis_ex1/Makefile examples/reduced_basis/reduced_basis_ex2/Makefile examples/reduced_basis/reduced_basis_ex3/Makefile examples/reduced_basis/reduced_basis_ex4/Makefile examples/reduced_basis/reduced_basis_ex5/Makefile examples/reduced_basis/reduced_basis_ex6/Makefile examples/reduced_basis/reduced_basis_ex7/Makefile examples/transient/transient_ex1/Makefile examples/transient/transient_ex2/Makefile examples/vector_fe/vector_fe_ex1/Makefile examples/vector_fe/vector_fe_ex2/Makefile examples/vector_fe/vector_fe_ex3/Makefile examples/vector_fe/vector_fe_ex4/Makefile examples/vector_fe/vector_fe_ex5/Makefile examples/vector_fe/vector_fe_ex6/Makefile examples/vector_fe/vector_fe_ex7/Makefile examples/vector_fe/vector_fe_ex8/Makefile examples/vector_fe/vector_fe_ex9/Makefile examples/Makefile"
6018160181

6018260182

6018360183
fi
@@ -62476,6 +62476,7 @@ do
6247662476
"examples/miscellaneous/miscellaneous_ex14/Makefile") CONFIG_FILES="$CONFIG_FILES examples/miscellaneous/miscellaneous_ex14/Makefile" ;;
6247762477
"examples/miscellaneous/miscellaneous_ex15/Makefile") CONFIG_FILES="$CONFIG_FILES examples/miscellaneous/miscellaneous_ex15/Makefile" ;;
6247862478
"examples/miscellaneous/miscellaneous_ex16/Makefile") CONFIG_FILES="$CONFIG_FILES examples/miscellaneous/miscellaneous_ex16/Makefile" ;;
62479+
"examples/miscellaneous/miscellaneous_ex17/Makefile") CONFIG_FILES="$CONFIG_FILES examples/miscellaneous/miscellaneous_ex17/Makefile" ;;
6247962480
"examples/optimization/optimization_ex1/Makefile") CONFIG_FILES="$CONFIG_FILES examples/optimization/optimization_ex1/Makefile" ;;
6248062481
"examples/optimization/optimization_ex2/Makefile") CONFIG_FILES="$CONFIG_FILES examples/optimization/optimization_ex2/Makefile" ;;
6248162482
"examples/subdomains/subdomains_ex1/Makefile") CONFIG_FILES="$CONFIG_FILES examples/subdomains/subdomains_ex1/Makefile" ;;

configure.ac

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ AS_IF([test "x$enableexamples" = "xyes"],
447447
examples/miscellaneous/miscellaneous_ex14/Makefile
448448
examples/miscellaneous/miscellaneous_ex15/Makefile
449449
examples/miscellaneous/miscellaneous_ex16/Makefile
450+
examples/miscellaneous/miscellaneous_ex17/Makefile
450451
examples/optimization/optimization_ex1/Makefile
451452
examples/optimization/optimization_ex2/Makefile
452453
examples/subdomains/subdomains_ex1/Makefile
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
<!doctype html>
2+
<html lang="en-US">
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
5+
<title>libMesh - A C++ Finite Element Library</title>
6+
<meta name="author" content="libMesh development team">
7+
<link rel="stylesheet" type="text/css" media="all" href="../styles.css">
8+
<link rel="stylesheet" type="text/css" media="all" href="../doxygen_stylesheet.css">
9+
</head>
10+
11+
<body>
12+
<nav id="fixedbar">
13+
<ul id="fixednav">
14+
<li><a href="../index.html">Home</a></li>
15+
<li><a href="../support.html">About Us</a></li>
16+
<li><a href="../publications.html">Publications</a></li>
17+
<li><a href="https://github.com/libMesh/libmesh/graphs/contributors">Developers</a></li>
18+
<li><a href="../installation.html">Installation</a></li>
19+
<li><a href="../examples.html">Examples</a></li>
20+
<li><a href="https://mooseframework.inl.gov/docs/doxygen/libmesh/index.html">Documentation</a></li>
21+
</ul>
22+
</nav>
23+
24+
<div id="w">
25+
<header id="logo"><a href="../index.html"><span id="logobg">SomeWebsiteLogo</span></a></header>
26+
27+
<nav id="navigation">
28+
<ul>
29+
<li><a href="../index.html">Home</a></li>
30+
<li><a href="../support.html">About Us</a></li>
31+
<li><a href="../publications.html">Publications</a></li>
32+
<li><a href="https://github.com/libMesh/libmesh/graphs/contributors">Developers</a></li>
33+
<li><a href="../installation.html">Installation</a></li>
34+
<li><a href="../examples.html">Examples</a></li>
35+
<li><a href="https://mooseframework.inl.gov/docs/doxygen/libmesh/index.html">Documentation</a></li>
36+
</ul>
37+
</nav>
38+
39+
<div id="content">
40+
41+
<br> <h1> Link to the source code for this example: </h1>
42+
<a href="https://github.com/libMesh/libmesh/tree/master/examples/miscellaneous/miscellaneous_ex17" target="_blank">Open miscellaneous_ex17 in new tab.</a>
43+
<a name="output"></a>
44+
<br><br><br> <h1> The console output of the program: </h1>
45+
<pre>
46+
CXX example_dbg-miscellaneous_ex17.o
47+
CXXLD example-dbg
48+
CXX example_devel-miscellaneous_ex17.o
49+
CXXLD example-devel
50+
CXX example_oprof-miscellaneous_ex17.o
51+
CXXLD example-oprof
52+
***************************************************************
53+
* Running Example miscellaneous_ex17:
54+
* ./example-opt
55+
***************************************************************
56+
57+
Running /data/lindad/libmesh-worktrees/libmesh/build/examples/miscellaneous/miscellaneous_ex17/.libs/example-opt
58+
59+
Mesh Information:
60+
elem_dimensions()={2}
61+
elem_default_orders()={1}
62+
supported_nodal_order()=1
63+
spatial_dimension()=2
64+
n_nodes()=9
65+
n_local_nodes()=9
66+
n_elem()=4
67+
n_local_elem()=4
68+
n_active_elem()=4
69+
n_subdomains()=1
70+
n_elemsets()=0
71+
n_partitions()=1
72+
n_processors()=1
73+
n_threads()=1
74+
processor_id()=0
75+
is_prepared()=true
76+
is_replicated()=true
77+
78+
EquationSystems
79+
n_systems()=1
80+
System #0, "Poisson"
81+
Type "LinearImplicit"
82+
Variables="u"
83+
Finite Element Types="LAGRANGE"
84+
Approximation Orders="FIRST"
85+
n_dofs()=9
86+
n_local_dofs()=9
87+
max(n_local_dofs())=9
88+
n_constrained_dofs()=0
89+
n_local_constrained_dofs()=0
90+
max(local unconstrained dofs)=9
91+
n_vectors()=1
92+
n_matrices()=2
93+
DofMap Sparsity
94+
Average On-Processor Bandwidth <= 5.44444
95+
Average Off-Processor Bandwidth <= 0
96+
Maximum On-Processor Bandwidth <= 9
97+
Maximum Off-Processor Bandwidth <= 0
98+
DofMap Constraints
99+
Number of DoF Constraints = 0
100+
101+
0 KSP Residual norm 1.688435532300e+00
102+
1 KSP Residual norm 4.775853068521e-03
103+
2 KSP Residual norm 8.773680887473e-05
104+
3 KSP Residual norm 2.605740036645e-06
105+
0 KSP Residual norm 1.688435532300e+00
106+
1 KSP Residual norm 4.775853068521e-03
107+
2 KSP Residual norm 8.773680887473e-05
108+
3 KSP Residual norm 2.605740036645e-06
109+
110+
***************************************************************
111+
* Done Running Example miscellaneous_ex17:
112+
* ./example-opt
113+
***************************************************************
114+
</pre>
115+
</div>
116+
117+
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
118+
<script type="text/javascript">
119+
$(document).ready(function(){
120+
$(window).on('scroll',function() {
121+
var scrolltop = $(this).scrollTop();
122+
123+
if(scrolltop >= 215) {
124+
$('#fixedbar').fadeIn(250);
125+
}
126+
127+
else if(scrolltop <= 210) {
128+
$('#fixedbar').fadeOut(250);
129+
}
130+
});
131+
});
132+
</script>
133+
134+
<!-- Google Analytics stuff -->
135+
<script type="text/javascript">
136+
var _gaq = _gaq || [];
137+
_gaq.push(['_setAccount', 'UA-24978333-1']);
138+
_gaq.push(['_trackPageview']);
139+
(function() {
140+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
141+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
142+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
143+
})();
144+
</script>
145+
146+
</body>
147+
</html>

doc/html/src/examples.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,11 @@ <h1>A Series of Example Programs</h1>
203203

204204
<li><L1><a href="examples/miscellaneous_ex16.html">Static Condensation with Second Order Lagrange Elements</a></L1></li>
205205

206+
<li>
207+
<L1><a href="examples/miscellaneous_ex17.html">Demonstrating mix of preallocated/hash-table matrix assemblies</a>
208+
</L1>
209+
</li>
210+
206211
</ol> </li>
207212

208213

examples/Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ SUBDIRS = \
4242
miscellaneous/miscellaneous_ex14 \
4343
miscellaneous/miscellaneous_ex15 \
4444
miscellaneous/miscellaneous_ex16 \
45+
miscellaneous/miscellaneous_ex17 \
4546
optimization/optimization_ex1 \
4647
optimization/optimization_ex2 \
4748
subdomains/subdomains_ex1 \

examples/Makefile.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,7 @@ SUBDIRS = \
630630
miscellaneous/miscellaneous_ex14 \
631631
miscellaneous/miscellaneous_ex15 \
632632
miscellaneous/miscellaneous_ex16 \
633+
miscellaneous/miscellaneous_ex17 \
633634
optimization/optimization_ex1 \
634635
optimization/optimization_ex2 \
635636
subdomains/subdomains_ex1 \
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
example_name = miscellaneous_ex17
2+
check_SCRIPTS = run.sh
3+
install_dir = $(examples_install_path)/introduction/ex3
4+
data = miscellaneous_ex17.C exact_solution.C run.sh
5+
sources = $(data) run.sh
6+
7+
CLEANFILES = out.pvtu
8+
9+
clean-local:
10+
-rm -rf out_*.vtu
11+
12+
##############################################
13+
# include common example environment
14+
include $(top_srcdir)/examples/Make.common

0 commit comments

Comments
 (0)